systemd是linux的初始进程,也是守护进程。systemd的功能十分复杂,从最初init所做的并行启动系统所需进程,到进程管理、日志等等功能都有,可以参考以下博客

https://blog.csdn.net/small_queen/article/details/115531530

使用systemctl enable/disable可以设定、取消一个程序的开机自启,其创建的指令在/lib/systemd/system/下(或者使用systemctl去看load行),如果某个软件安装的时候没有在这个目录下生成文件,那么必须得要手动配置后才能使用systemctl去控制开关,其格式以sshd.service为例

[Unit] #启动顺序与依赖顺序
Description=OpenSSH server daemon #描述
Documentation=man:sshd(8) man:sshd_config(5) #描述文档
After=network.target sshd-keygen.service #如果写在这行的服务需要启动,那么在此之前需要先启动sshd
Wants=sshd-keygen.service #表示两者之间是弱依赖关系,一个挂了不影响另外一个,另外有Requires字段表示强依赖

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd #环境参数配置文件
ExecStart=/usr/sbin/sshd -D $OPTIONS #自定义启动进程时的命令
ExecReload=/bin/kill -HUP $MAINPID #自定义reload时的命令
KillMode=process #定义 Systemd 如何停止 sshd 服务。
Restart=on-failure #Restart字段:定义了 sshd 退出后,Systemd 的重启方式。
RestartSec=42s #退出后重启前需要等待的时间

[Install] #定义以何种方式自启
WantedBy=multi-user.target #multi-user.target - 多用户命令行


#killmode字段
#control-group(默认值):当前控制组里面的所有子进程,都会被杀掉
#process:只杀主进程
#mixed:主进程将收到 SIGTERM 信号,子进程收到 SIGKILL 信号
#none:没有进程会被杀掉,只是执行服务的 stop 命令。


#restart字段
#no(默认值):退出后不会重启
#on-success:只有正常退出时(退出状态码为0),才会重启
#on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启
#on-abnormal:只有被信号终止和超时,才会重启
#on-abort:只有在收到没有捕捉到的信号终止时,才会重启
#on-watchdog:超时退出,才会重启
#always:不管是什么退出原因,总是重启

http://t.zoukankan.com/hukey-p-11031157.html

标签: none

评论已关闭