如何编写 systemd 规则
创建文件
sudo touch /etc/systemctl/system/YOUR-FILE-NAME.service
(我一般会偷懒直接vim打开,编辑完了:wq正好新建文件保存,缺点是没保存可能swp文件会弄丢)
sudo vim /etc/systemctl/system/YOUR-FILE-NAME.service
自己改名字,后缀保持为service即可
打开编辑器,应该能看到
"/etc/systemctl/system/conf.service" [New]
如果提前用touch新建文件就没有[New]标签
编辑 Systemd service 文件
一般情况下,systemd文件格式应该为
[Unit]
Description=HiMyNameIsLinus ##服务名字
Before=trim-disk.service ##这里是要在conf.service加载【之前】启动的服务,如果【启动失败】,此服务会继续【启动】
After=network.target ##这里指服务要在网络服务加载【之后】启动,如果网络【启动失败】,服务会继续【启动】
[Service]
User=admln ##执行指令的用户,不知道写什么就写root
ExecStartPre=echo Hello,BT-network. ##这是在ExecStart之前执行的指令,日志会打印到这个服务日志
ExecStart=qbittorrent-nox ##这里是执行的命令,就是你在shell里面输入的那个,一模一样拿过来就行
ExecStartPost=echo ProgramStop. ##这是ExecStart之后执行的东西,日志一样会打印在一起
Type=forking ##进程会产生一个子进程,该子进程成为该服务的主要进程。例如服务启动脚本启动另一个程序。启动完成后,父进程退出。
WorkingDirectory=/home/admln/config ##增加工作目录配置,防止进程访问相对目录时失败
Restart=always ##总是自动重启,手动关闭除外
RestartSec=10s ##关闭/崩溃到下次启动的间隔时间
[Install]
WantedBy=multi-user.target ##希望与xxx.target一起运行
如何编写 systemd 规则
https://blog.yoyo250.fun/archives/technology/9.html