linux使用systemd配置开机自动运行脚本

编写测试脚本

首先我们编写一个简单的测试脚本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检查服务是否正确自动启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值