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也启动,
下面有详细介绍
扩展阅读
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。