设置服务为systemd系统服务

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也启动,
 下面有详细介绍

扩展阅读

作者:汝何不上九霄原文地址:https://segmentfault.com/a/1190000043358624

%s 个评论

要回复文章请先登录注册