Skip to content

19 自动化

开机自动挂载:/etc/fstab

/etc/fstab 文件用于配置开机自动挂载的文件系统。 每个文件系统的挂载信息占一行,格式为:

bash
<设备> <挂载点> <文件系统类型> <挂载选项> <转储频率> <检查顺序>

例如,我想在开机时自动挂载 Windows 的 E 盘(假设为/dev/nvme0n1p10)。

  1. 找到 E 盘的 UUID 和文件系统类型。
    bash
    binzz@C7VF:~$ lsblk -f /dev/nvme0n1p10
    NAME       FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
    nvme0n1p10 ntfs               2CF0A71EF0A6ECF0                                    
    binzz@C7VF:~$
    提示,根目录必须最先挂载。
  2. 编辑 /etc/fstab 文件,添加以下行:
    bash
    UUID=2CF0A71EF0A6ECF0 /media/binzz/2CF0A71EF0A6ECF0 ntfs user,exec 0 0
    共有六个参数,分别是 UUID、挂载点、文件系统类型、挂载选项、转储频率、检查顺序。 最后两个参数可以不管,通常都填0。挂载选项详情见 https://linux.vbird.org/linux_basic/centos7/0230filesystem.php#fstab (稍微向下滑一点,可以看到一个表格,就是挂载选项的说明)。
  3. 运行:
    bash
    systemctl daemon-reload
    sudo mount -a # 根据/etc/fstab文件挂载文件系统
    这样 E 盘就已经挂载了。每次启动系统时,都会自动挂载 E 盘。

服务

系统级

路径:/etc/systemd/system/xx.service

ini
# frpsd.service
[Unit]
Description=FRP Server (frps)
After=network.target

[Service]
Type=simple
WorkingDirectory=/etc/frp
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

写好服务文件后:

bash
systemctl daemon-reload

执行方法:

bash
systemctl start <服务>

开机自启动该服务:

bash
systemctl enable <服务>

用户级

路径:~/.config/systemd/user/xx.service

ini
# x11vncserver.service
[Unit]
Description=x11vnc VNC Server
After=graphical-session.target

[Service]
ExecStart=x11vnc -display :0 -rfbport 5901 -rfbauth %h/.vnc/x11vnc.passwd -ncache 0 -forever
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=default.target

写好服务文件后:

bash
systemctl daemon-reload

执行方法:

bash
systemctl --user start <服务>

开机自启动该服务:

bash
systemctl --user enable <服务>