Linux 实现脚本开机自启动
Ubuntu 22.04、CentOS 8.5
vim /lib/systemd/system/rc-local.service
作用:在系统启动的最后阶段,自动查找【指定路径】下的脚本进行执行
脚本路径一般为:/etc/rc.local、/etc/rc.d/rc.local
[Unit] # 描述:兼容/etc/rc.d/rc.local的服务 Description=/etc/rc.d/rc.local Compatibility Documentation=man:systemd-rc-local-generator(8) # 运行条件:指定文件存在并且具有可执行权限,服务才会被激活 ConditionFileIsExecutable=/etc/rc.d/rc.local # 运行条件:网络就绪后运行 After=network-online.target Wants=network-online.target [Service] # 服务类型:forking表示脚本会启动一个后台守护进程 Type=forking # 服务启动命令:运行脚本 ExecStart=/etc/rc.d/rc.local start # 超时设置:0表示没有超时限制 TimeoutSec=0 # 当脚本进程退出后,服务状态仍保持为“active”(适合只运行一次的脚本) RemainAfterExit=yes # 不尝试猜测主进程ID,与Type=forking 和 RemainAfterExit=yes 配合使用 GuessMainPID=no
vim /etc/rc.d/rc.local
作用:自定义需要运行的脚本
#!/bin/bash
# 这个脚本将在系统启动时执行
# 示例:启动一个自定义的 Python 脚本
/usr/bin/python3 /opt/my_custom_service.py > /root/log/my.log 2>&1 &
# 确保脚本以退出码 0 结束,表示成功
exit 0
设置自动启动
-
启用(开机自启):
systemctl enable rc-local.service -
立即启动:
systemctl start rc-local.service -
查看状态:
systemctl status rc-local.service
适用场景
- rc-local.service:非常适合运行一些简单的、一次性的、非关键的启动任务
- 创建一个自定义的 systemd service文件:可以获得更精细的控制(依赖关系、资源管理、日志集成、自动重启等),适合复杂服务
本文来自博客园,作者:Fēngwèi,转载请注明原文链接:https://www.cnblogs.com/fengwei-blogs/p/18820350

浙公网安备 33010602011771号