惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
Microsoft Azure Blog
Microsoft Azure Blog
V2EX - 技术
V2EX - 技术
N
News and Events Feed by Topic
Webroot Blog
Webroot Blog
博客园_首页
月光博客
月光博客
N
News | PayPal Newsroom
The Cloudflare Blog
博客园 - 聂微东
酷 壳 – CoolShell
酷 壳 – CoolShell
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
量子位
G
Google Developers Blog
T
Troy Hunt's Blog
博客园 - Franky
腾讯CDC
S
Security Affairs
J
Java Code Geeks
aimingoo的专栏
aimingoo的专栏
S
Security @ Cisco Blogs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
D
DataBreaches.Net
Recorded Future
Recorded Future
H
Heimdal Security Blog
V
Vulnerabilities – Threatpost
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
D
Docker
P
Proofpoint News Feed
V
V2EX
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Secure Thoughts
Engineering at Meta
Engineering at Meta
PCI Perspectives
PCI Perspectives
宝玉的分享
宝玉的分享
The Hacker News
The Hacker News
有赞技术团队
有赞技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Cloudbric
Cloudbric
Microsoft Security Blog
Microsoft Security Blog
G
GRAHAM CLULEY
MyScale Blog
MyScale Blog
L
LINUX DO - 热门话题
雷峰网
雷峰网
Know Your Adversary
Know Your Adversary

server – Ed_'s Blog

给 Debian 开了自动安全更新 – yywr's Blog Crontab 使用笔记 – yywr's Blog 终于修了个梯子 – yywr's Blog 防火墙配置工具 UFW – yywr's Blog 说说 LNMP 面板 – yywr's Blog Linux 下自动挂载 Samba /CIFS 共享文件夹 – yywr's Blog Ubuntu 开机自动挂载第二块硬盘 – yywr's Blog 重装了家里的服务器系统 – yywr's Blog 构建网络私有书架,实现听书看书 – yywr's Blog 主机安装 Tiny Tiny RSS 踩坑记 – yywr's Blog
Linux 程序开机启动并保活:Systemd 进程守护管理工具 – yywr's Blog
yywr · 2023-02-14 · via server – Ed_'s Blog

最早的时候我半懂不懂的抄别人作业,使用 init.rc 来实现开机自启动程序,当然仅仅只能实现开机启动,其它功能全没有,之后一直在想是不是要系统的看看这个工具的,起码实现保活。

后来发现了阮一峰有详细介绍 Systemd 的文章,这才算找到一个比较简单、靠谱的方法来实现服务程序的开机自启和保活

当然这里只简单的说一下我是怎么使用,居家使用足够了,详细的请啃原文,里面有很多有用的命令和方法 >> http://ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html

创建文件

这是最重要的配置步骤,文件放在 /usr/lib/systemd/system , 文件按 XXX.service 格式命名  ,XXX 就是我们的服务名称,如果没有特殊需求,按我下面的格式配置就好了,以我的 aria2 程序为例,基本上只是设置了一下描述和启动命令,其它启动依赖基本上用不上:

sudo nano /usr/lib/systemd/system/Aria2.service

[Unit]
Description= Aria2 application start and daemon
Documentation=
After=
Wants=

[Service]
EnvironmentFile=

#ExecStart设置程序启动命令,平时怎么启动,这里就怎么写
ExecStart=  sudo -u www -g www aria2c --conf-path=/home/www/conf/aria2.conf -D

ExecReload=/bin/kill -HUP $MAINPID
Type=simple
KillMode=process

#Restart设置 aria2 退出后,Systemd 重启它的方式, on-failure 表示发生任何意外就重启 aria2 , always 表示任何情况都重启
#Restart=on-failure
Restart=always
RestartSec=30s

[Install]
WantedBy=multi-user.target

启动服务

service文件保存后,使用命令启动服务  >>>   sudo systemctl start aria2c

检查状态

启动后使用这个命令查看状态 >>>   sudo systemctl status aria2c

设置开机启动

如果状态正常,那么就可以设置开机启动,用这个命令 >>>    sudo systemctl enable aria2c

保活检测

如果想要测试保活,可以使用下面两个方法强行结束进程,看在过了 RestartSec 时间之后服务是否重启 

方法一: sudo  systemctl kill aria2c

方法二:找出进度ID直接用kill结束

yywr.net@h:~$ sudo lsof -i:6800
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
aria2c  38070  www    5u  IPv4 743710      0t0  TCP localhost:6800 (LISTEN)
aria2c  38070  www    6u  IPv6 743712      0t0  TCP ip6-localhost:6800 (LISTEN)
yywr.net@h:~$ sudo kill 38070

附: Restart 重启设置选项,更多资料看前面给出的链接

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

本文是 居家服务器折腾笔记 的一部分