起因
在折腾树莓派的过程中,参考教程,也搭建了几个服务,因为有时会有开关机的需要,所以,不少服务都需要重新开启,是不是有更好的方式来实现开机启动呢,于是google找了几篇教程,也尝试了几种方式,终于找到了适合的方式来管理服务了。
网上很多使用的是 在 /etc/rc.local 中添加开启语句 或者是在 /etc/init.d 中添加shell脚本,在操作的过程中发现使用不是很友好, 难道没有统一的标准来进行方便管理的工具吗?
ps 根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。而 rc0.d~rc6.d 中的文件 均是来自/etc/init.d 文件的软链,当加载完成后 加载 /etc/rc.local (用户自定义配置)
Systemd
在CentOS 7 和 Ubuntu 15 中 开始加入 Systemd 作为系统的启动和管理的优先解决方案。
主要文件
配置文件主要放在/usr/lib/systemd/system目录中 主要是用户定义的启动
/lib/systemd/system 则存放系统级别的启动任务
/etc/systemd/system 中存了一些放前者的软链
编写启动文件 (以aria2 为例)
[Unit]
Description=aria2
After=network.target
[Service]
ExecStart= /home/user/tool/aria2/aria2c --conf-path=/home/user/tool/aria2c/aria2.conf
ExecStop=/bin/kill $MAINPID
RestartSec=5s
Restart=on-failure
[Install]
WantedBy=multi-user.target
使用方法
sudo systemctl enable aria2 # 设置开机启动
sudo systemctl start aria2 # 启动服务
sudo systemctl status aria2 # 查看服务状态
sudo systemctl stop aria2 # 停止服务
sudo systemctl restart aria2 # 重启服务
sudo systemctl kill aria2 # 杀死进程
参考链接: