Ubu18开机自启动服务-Systemd
本文内容为个人测试记录,具体文件目录请以读者自己电脑为准,此处只是提供参考
个人学习难免有所疏漏,如有错误请包容并指出
1.准备程序
服务:autoRun.service
[Unit]
Description=AutoStart #z自定义服务名称,可选
After=network.target
[Service]
Type=simple
User=root
# 服务启动时执行的脚本,
### 使用sh命令包括其他Linux系统命令时都要使用全路径,/bin/sh等,包括.sh文件也需要使用绝对路径,才能找到。
ExecStart=/bin/sh /root/auto/start.sh
# 服务停止时执行的脚本
ExecStop=/bin/sh /root/auto/stop.sh
#Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
服务启动脚本:start.sh
, 这里选择用python
做一个测试程序
#!/bin/bash
echo $! > /root/auto/autoRun.pid
python3 /root/auto/test.py
测试程序:test.py
#将当前时间输出到dd.log文件
from cmath import log
import os,time
while True:
time.sleep(1)
os.system("date >> /root/auto/dd.log ")
服务停止脚本:stop.sh
#/bin/bash
PID=$(cat /root/auto/autoRun.pid)
kill -9 $PID
rm -fr /root/auto/autoRun.pid
Demo程序和脚本准备完成
2.文件部署
将服务文件autoRun.service
放到/lib/systemd/system
目录下
sudo cp autoRun.service /lib/systemd/system/
将开始脚本start.sh
、停止脚本stop.sh
和测试程序test.py
放到/root/auto/
目录下
3.测试
注:为方便测试,我这里直接切换到root
用户进行操作,实际操作请以个人为准(autoRun
后的.service
看个人喜好,可加可不加)
首先重新加载服务
systemctl daemon-reload
启动脚本(这里启动autoRrun
是因为前面autoRun.service
的命名)
systemctl start autoRun
查看服务状态
systemctl status autoRun
停止服务
systemctl stop autoRun
设置开机自启动
systemctl enable autoRun
4.预期结果
这里我是在云服务器+vscode-cnblog插件写的博客,图片上传没太搞明白,后续有机会补上
查询状态
root@Ubu18:~/auto# systemctl status autoRun
● autoRun.service - MicroAutoStart
Loaded: loaded (/lib/systemd/system/autoRun.service; enabled; vendor preset:
Active: active (running) since Wed 2022-01-26 01:57:53 CST; 10min ago
Main PID: 3393 (sh)
Tasks: 2 (limit: 4006)
CGroup: /system.slice/autoRun.service
├─3393 /bin/sh /root/auto/start.sh
└─3394 python3 /root/auto/test.py
1月 26 01:57:53 Ubu18 systemd[1]: Started MicroAutoStart.
检查python
测试程序运行情况
root@Ubu18:~/auto# ps aux|grep test
kernoops 2173 0.0 0.0 56944 424 ? Ss 01:38 0:00 /usr/sbin/kerneloops --test
root 3394 0.0 0.2 31476 9536 ? S 01:57 0:00 python3 /root/auto/test.py
root 5304 0.0 0.0 16184 1084 pts/0 S+ 02:13 0:00 grep --color=auto test
root@Ubu18:~/auto#
查看dd.log
记录:
root@Ubu18:~/auto# cat dd.log
2022年 01月 26日 星期三 02:14:27 CST
2022年 01月 26日 星期三 02:14:28 CST
2022年 01月 26日 星期三 02:14:29 CST
root@Ubu18:~/auto# ^C
root@Ubu18:~/auto# cat dd.log
2022年 01月 26日 星期三 02:14:27 CST
2022年 01月 26日 星期三 02:14:28 CST
2022年 01月 26日 星期三 02:14:29 CST
2022年 01月 26日 星期三 02:14:30 CST
2022年 01月 26日 星期三 02:14:31 CST
2022年 01月 26日 星期三 02:14:32 CST
2022年 01月 26日 星期三 02:14:33 CST
2022年 01月 26日 星期三 02:14:34 CST
2022年 01月 26日 星期三 02:14:35 CST
2022年 01月 26日 星期三 02:14:36 CST
2022年 01月 26日 星期三 02:14:37 CST
2022年 01月 26日 星期三 02:14:38 CST
2022年 01月 26日 星期三 02:14:39 CST
2022年 01月 26日 星期三 02:14:40 CST
2022年 01月 26日 星期三 02:14:41 CST
2022年 01月 26日 星期三 02:14:42 CST
2022年 01月 26日 星期三 02:14:43 CST
root@Ubu18:~/auto#