此教程以一个可执行程序/usr/bin/gost
,配置文件/etc/gost/gost.json
为例
编写.service文件
.service文件示例
[Unit]
Description=Gost
Documentation=https://docs.ginuerzh.xyz/gost/
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/gost -C /etc/gost/gost.json
Restart=always
RestartSec=15
LimitNOFILE=655360
[Install]
WantedBy=multi-user.target
[unit] 区块
启动顺序与依赖关系
Description
当前服务的简单描述Documentation
当前服务文档描述After
定义启动顺序,以上示例为加载network.target
后启动服务
[service] 区块
启动行为
Type
启动类型。simple(默认值):ExecStart
字段启动的进程为主进程ExecStart
定义启动进程时执行的命令Restart
服务中断后尝试自动重启服务的方式,always
为总是尝试重启RestartSec
重启间隔时间LimitNOFILE
打开文件数
[install] 区块
安装这个配置文件的行为
WantedBy
指定单元如何被启用。启用该指令后,在/etc/systemd/system
中会创建一个以指定单元命名的目录,并在目录末尾加上.wants
。在这个目录中,将创建一个指向当前单元的符号链接,以建立依赖关系。例如,如果当前单元的WantedBy=multi-user.target
,就会在/etc/systemd/system
中创建一个名为multi-user.target.wants
的目录(如果还没有的话),并在其中放置一个指向当前单元的符号链接。禁用该单元后,将删除该链接并消除依赖关系。
开机启动
将上述文件添加到/usr/lib/systemd/system
目录,并执行下列命令
# systemctl enable gost.service
上面的命令相当于在/etc/systemd/system
目录添加一个符号链接,指向/usr/lib/systemd/system
里面的gost.service
文件。
这是因为开机时,Systemd
只执行/etc/systemd/system
目录里面的配置文件。这也意味着,如果把修改后的配置文件放在该目录,就可以达到覆盖原始配置的效果。
启动服务
设置开机启动以后,软件并不会立即启动,必须等到下一次开机。如果想现在就运行该软件,那么要执行
# systemctl start gost.service
查看服务状态
# systemctl status gost.service
停止服务
# systemctl stop gost.service
参考文档
Systemd 入门教程:实战篇 - 阮一峰的网络日志 (ruanyifeng.com)
Understanding Systemd Units and Unit Files | DigitalOcean
systemd.service (www.freedesktop.org)
版权属于:谁把年华错落成诗 所有,转载请注明出处!
本文链接:https://blog.pomears.com/archives/67.html
如果博客部分链接出现404,请留言或者联系博主修复。