准备好需要开机自启的 shell
sudo vim /etc/rebootRun.sh
#!/bin/sh -e
#
# Script description
#
echo "Script Run Success" > /usr/local/testrun.log
exit 0
-
-e 的含义
- 每条指令之后,都可以用$?去判断它的返回值,零就是正确执行,非零就是执行有误
- 加了-e之后,就不用自己写代码去判断返回值,返回非零,脚本就会自动退出。
-
需要注意 在
Ubuntu16.10
开始不再使用/etc/init.d/
给 shell 设置权限
sudo chmod +x /etc/rebootRun.sh
编写 service 文件
sudo vim /etc/systemd/system/rc-rebootRun.service
[Unit]
Description=call rebootRun.sh
ConditionPathExists=/etc/rebootRun.sh
[Service]
Type=forking
ExecStart=/etc/rebootRun.sh start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
-
[Unit]
: 启动顺序与依赖关系 -
[Service]
: 启动行为,如何启动,启动类型 -
[Install]
: 定义如何安装这个配置文件,即怎样做到开机启动
通过 systemctl 给 shell 设置为服务
# 启用这个一个 service
sudo systemctl enable rc-rebootRun
# 启动服务
sudo systemctl start rc-rebootRun.service
# 查看服务状态
sudo systemctl status rc-rebootRun.service