本文仅供记录使用,可能将合并入将来撰写的系列文章:”大刷子的养成方法“
所有脚本存放于 /etc/systemd/system
目录下
Deluge 及其 WebUI 的 SystemD 启动脚本:
[Unit] Description=Deluged After=network-online.target [Service] ExecStart=/usr/bin/deluged -d ExecStop=/bin/kill -9 $(/bin/cat /run/deluged.pid) Restart=always PIDFile=/run/deluged.pid TimeoutStopSec=300 [Install] WantedBy=multi-user.target
[Unit] Description=Deluge-web After=network-online.target deluged.service Wants=deluged.service [Service] ExecStart=/usr/bin/deluge-web ExecStop=/bin/kill -9 $(/bin/cat /run/deluge-web.pid) Restart=always PIDFile=/run/deluge-web.pid [Install] WantedBy=multi-user.target
VNCserver 启动脚本:
[Unit] Description=VNCserver After=syslog.target network.target [Service] ExecStart=/usr/bin/sudo /usr/bin/vncserver :1 ExecStop=/usr/bin/sudo /usr/bin/vncserver -kill :1 ExecStartPre=-/usr/bin/sudo /usr/bin/vncserver -kill :1 > /dev/null 2>&1 Restart=always Type=forking #PIDFile=/run/vncserver.pid [Install] WantedBy=multi-user.target
OpenVZ 下 TunnelBroker 实现(借助 tb_tun 实现):
[Unit] Description=ipv6tb After=network-online.target [Service] Type=forking ExecStart=/usr/bin/sudo /etc/init.d/ipv6tb start ExecStop=/usr/bin/sudo /etc/init.d/ipv6tb stop Restart=always [Install] WantedBy=multi-user.target
执行 systemctl enable <serviceName>
安装服务
写入完成之后,执行 systemctl daemon-reload
载入 service 文件,再使用 systemctl start <serviceName>
运行服务,或者重启测试
一些说明:
- Type=forking 代表该启动脚本需要 systemd 跟踪 fork 出来的进程,在执行脚本的时候可能需要,以及 vncserver 这样需要启动桌面环境(其他进程)的启动项
- VNCserver 采用 sudo 运行的原因是需要指定运行环境变量,如果直接运行 /usr/bin/vncserver 会有 vncserver: The HOME environment variable is not set. 的错误,为了方便直接指定 sudo 采用 root 环境运行
- Systemd 脚本需要写绝对路径,不能写相对路径
Pingback引用通告: 从零开始的盒子:Online Dedibox 盒子配置记录 | GLORIOUS DAYS