Linux之systemd服务配置及自动重启
在linux上开发时,往往需要将自己的程序做成服务,并且实现服务开机自动重启,以及服务崩溃后自动重启功能,本文就对该功能的实现做简单介绍,实现方法很简单,使用linux系统的systemd即可实现
配置文件编写
vim /usr/lib/systemd/system/my.service

[Unit]
Description=ROT13 demo service
After=network.target
StartLimitIntervalSec=0
 
[Service]
Type=simple
Restart=always
RestartSec=1
User=ltpc
ExecStart=/usr/bin/env php /path/to/server.php
 
[Install]
WantedBy=multi-user.target

有几点需要注意,为了使服务能够自动无限次重启,需要增加以下几个配置

StartLimitIntervalSec=0
 
Restart=always
 
RestartSec=1

设置开机启动
systemctl enable rot13
示例

[Unit]
Description=Stop kodi and start NPC                        描述部分
After=kodi.target                                       在kode.target后启动
                           
[Service]
Type=simple                                                表明只启动ExecStart为主进程
ExecStart=/usr/bin/bash /storage/NPC_main.sh start       需要启动的命令、程序、脚本
ExecReload=/usr/bin/bash /storage/NPC_main.sh restart   重新启动的命令、程序、脚本
ExecStop=/usr/bin/kill -TERM $MAINPID                   接收到 stop 命令时执行     
Restart=always                                          遇到意外关闭、超时都重启
RestartSec=2                                              重启间隔,默认是100ms,只给数字则默认为秒
StartLimitInterval=10                                    启动间隔
PrivateTmp=true                                          这个服务进程使用私有的tmp缓存
               
[Install]
WantedBy=multi-user.target                                被这个.target需要,意思是它启动本Unit也启动,
                                                        下面有详细介绍

扩展阅读


汝何不上九霄
4.7k 声望1.6k 粉丝