Ubu18开机自启动-Systemd

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#

5.开机自启动服务部署成功

上一篇:pandas常用操作复习-02-表格连接


下一篇:2000. 反转单词前缀_2022_02_02