我们使用 unix
服务器目前管理服务的方式,基本上是使用systemd
来进行管理,所以这边简单的说明一下如何编写一个简单的systemd
服务脚本。
编写简单的服务文件
正常情况下,如果我们需要保持软件在后台执行,所期望的是:
- 能够启动和停止,以及设置开机启动
- 意外退出后能够自动重启
对于这一项,我认为最简单的配置是:
1 2 3 4 5 6 7 8 9 10 11 12
| [Unit] Description=服务描述 After=network.target
[Service] User=启动的用户名 Restart=on-failure WorkingDirectory=工作目录 ExecStart=执行命令
[Install] WantedBy=multi-user.target
|
只需要将上述配置放到 /usr/lib/systemd/system/服务名.service
即可实现我们希望的功能。
操作命令:
- 启动: systemctl start 服务名
- 退出: systemctl stop 服务名
- 状态: systemctl status 服务名
- 重启: systemctl restart 服务名
附上 sshd
的配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| $ systemctl cat sshd.service
[Unit] Description=OpenSSH server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.service Wants=sshd-keygen.service
[Service] EnvironmentFile=/etc/sysconfig/sshd ExecStart=/usr/sbin/sshd -D $OPTIONS ExecReload=/bin/kill -HUP $MAINPID Type=simple KillMode=process Restart=on-failure RestartSec=42s
[Install] WantedBy=multi-user.target
|
参考文档
- systemd 编写服务管理脚本
- Systemd 入门教程:命令篇
- Systemd 入门教程:实战篇
其他互联网文档