博主头像
憨憨Yo酱の博客

Ciallo ~

如何编写 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
本文作者 yoyo
发布时间 2024-11-04
许可协议 CC BY-NC-SA 4.0
发表新评论