编写测试脚本
首先我们编写一个简单的测试脚本example.sh
用于开机时自动执行,该测试脚本将当前时间写入用户目录下的start_time.txt
。
example.sh
脚本具体内容如下:
#!/bin/sh
date > ~/start_time.txt
注意,第一行的#!/bin/sh
是必须的,否则会报错Exec format error
。
接着我们给example.sh
添加执行权限:
chmod +x example.sh
我们可以先执行一下脚本看是否是我们预期的结果。
编写服务脚本
然后前往 /etc/systemd/system
目录,创建一个auto_start.service
服务单元文件,内容如下:
[Unit]
Description=auto run example after starting
[Service]
ExecStart=~/example.sh
[Install]
WantedBy=multi-user.target
其中Description
简单描述了服务,WantedBy
表示该服务所在的服务组。
这里的关键是在ExecStart
参数中填入example.sh
脚本的路径。
使服务生效
完成服务脚本编写后,需要执行以下命令重新加载所有的systemd服务,否则会找不到auto_start.service
服务。
sudo systemctl daemon-reload
然后通过 systemctl 命令来控制服务启停,控制命令语法如下:
# 管理服务 [使能自启动|启动|停止|重启|查看状态]
sudo systemctl [enable|start|stop|restart|status] xxx.service
现在可以执行下面命令启动auto_start.service
服务。
sudo systemctl start auto_start.service
查看start_time.txt
检查服务是否正确启动。
Thur April 11 11:10:29 UTC 2024
为了使每次启动后能自动执行服务,我们需要使能该服务,使用如下命令:
sudo systemctl enable auto_start.service
重启后查看start_time.txt
检查服务是否正确自动启动。