Linux通用-脚本开机自启动(service)
Ubuntu 22.04、CentOS 8.5
vim /etc/systemd/system/my-custom-service.service
作用:在系统启动的最后阶段,自动查找【指定路径】下的脚本进行执行
脚本路径:vim /usr/local/bin/my-custom-script.sh
[Unit]
Description=My Custom Startup Script
After=network.target # 在网络服务启动后执行
Wants=network.target # 需要网络服务
[Service]
Type=forking # 脚本会启动一个后台守护进程
ExecStart=/usr/local/bin/my-custom-script.sh #运行脚本
Restart=on-failure # 失败时重启
RestartSec=10s
StandardOutput=journal # 输出到 systemd 日志
[Install]
WantedBy=multi-user.target # 多用户模式时启动
vim /usr/local/bin/my-custom-script.sh
作用:自定义需要运行的脚本
#!/bin/bash
# 这个脚本将在系统启动时执行
# 示例:启动一个自定义的 Python 脚本
/usr/bin/python3 /opt/my_custom_service.py > /root/log/my.log 2>&1 &
# 确保脚本以退出码 0 结束,表示成功
exit 0
设置自动启动
-
启用(开机自启): systemctl enable my-custom-service
-
立即启动: systemctl start my-custom-service
-
查看状态: systemctl status my-custom-service
- 查看日志:journalctl -u my-custom-service -f
适用场景
- rc-local.service:非常适合运行一些简单的、一次性的、非关键的启动任务
- vim /etc/systemd/system/rc-local.service(rc-local.service执行rc.local)
- vim /etc/rc.local(Ubuntu),vim /etc/rc.d/rc.local(Red hat)
- journalctl -u rc-local.service
#!/bin/bash # 你的简单非关键任务,放到后台执行避免卡启动(默认会等待你的脚本执行完,才算启动成功,尽量放后台执行) /usr/sbin/ntpdate time.nist.gov > /dev/null 2>&1 & exit 0
- 创建一个自定义的 systemd service文件或者使用supervisor:可以获得更精细的控制(依赖关系、资源管理、日志集成、自动重启等),适合复杂服务
本文来自博客园,作者:FengweiTech,转载请注明原文链接:https://www.cnblogs.com/fengwei-blogs/p/18820350

浙公网安备 33010602011771号