Linux 系统中设置自定义脚本开机自启动有如下几种方式
方案一、增加cron task
1. 打开任务文件 cron
# 执行如下命令打开当前用户的 cron,如果打开root用户的cron,执行 sudo crontab -e
crontab -e
2. 向其中加入如下需要开机自启的脚本
# @reboot 后为用户自定义的启动脚本的完整路径,替换成自己的脚本路径
@reboot </path/to/myscript.sh>
【注意】
- 在此需要加入自定义脚本的完整路径,不能为相对路径。
- 该脚本需要有可执行权限。
- 如果需要查看 cron 中的内容,使用
crontab -l
查看当前普通用户;sudo crontab -l
:查看root 用户。 - 自定义脚本中的内容需要注意,如果写入文件要使用完整的路径,而不是相对路径。
方案二、通过 systemd
管理自启动服务
现代Linux默认使用 systemd
作为初始化系统,该方式来设置开机启动项也是最推荐的方式
1、创建并启动对应服务
1) 创建 systemd
服务文件
在/etc/systemd/system
目录下创建 myTest.service
文件,文件名需要为 xxxx.service
sudo vim /etc/systemd/system/myTest.service
2) 在对应的 .service
文件中写入如下内容
[Unit]
Description=My self restart execute test file[Service]
ExecStart=/home/codex/x03/test02.sh
Restart=always
User=root
Type=simple[Install]
WantedBy=multi-user.target
【注意】
- Service 中的
ExecStart
的值需要为完整的路径。 - 该文件的注释为前面加
#
3) 执行如下命令
# 重新加载 systemd 配置的命令,确保任何更改都能被识别
sudo systemctl daemon-reload# 将该服务设置为系统启动时自动启动
sudo systemctl enable myTest.service
2、关闭对应的服务
1)、 查询对应服务的状态:
sudo systemctl status myTest.service
2)、如果服务正在运行则将其停止
sudo systemctl stop myTest.service
3)、禁用该服务
sudo systemctl disable myTest.service
4)、删除对应的服务文件 xxx.service
sudo rm -rf /etc/systemd/system/myTest.service
5)、重新加载systemd
配置文件,使修改生效
sudo systemctl daemon-reload