systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
案例:
[Unit]
Description=meross rpc server
After=
[Install]
WantedBy=
[Service]
Type=simple
PIDFile=/usr/local/htdocs/meross_admin_rpc_queue_handle/ # 存放PID的绝对路径
ExecStart=/usr/local/htdocs/meross_admin_rpc_queue_handle/meross_admin_rpc_queue_handle # 服务启动命令,命令需要绝对路径
ExecStop=/bin/kill -HUP $MAINPID
Restart=always
RestartSec=20
StartLimitInterval=0
重点参数详解
-
Restart=always: 只要不是通过systemctl stop来停止服务,任何情况下都必须要重启服务,默认值为no
-
RestartSec=20: 重启间隔,比如某次异常后,等待20(s)再进行启动,默认值0.1(s)
-
StartLimitInterval: 无限次重启,默认是10秒内如果重启超过5次则不再重启,设置为0表示不限次数重启