部分 Seedbox 使用的 systemd 自动启动脚本

本文仅供记录使用,可能将合并入将来撰写的系列文章:”大刷子的养成方法“

所有脚本存放于 /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 脚本需要写绝对路径,不能写相对路径

部分 Seedbox 使用的 systemd 自动启动脚本》有一个想法

  1. Pingback引用通告: 从零开始的盒子:Online Dedibox 盒子配置记录 | GLORIOUS DAYS

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注