Linux启动自动运行sh文件(可控制启动顺序)
使用 systemd
服务(推荐,现代 Linux 发行版)
适用于 精细控制启动顺序(如依赖redis服务和网络服务)
1. 创建服务文件(如 myautostart.service
)
sudo vim /etc/systemd/system/myautostart.service
2. 写入以下内容(替换 ExecStart
为你的脚本路径)
[Unit]
Description=My Python Web App
After=network.target redis.service # 在网络和 Redis 之后启动
Requires=redis.service # 强依赖 Redis,如果 Redis 启动失败,本服务也会失败
# 或者使用 Wants=redis.service # 弱依赖,Redis 失败不影响本服务[Service]
Type=simple
ExecStart=/home/username/myscript.sh # 需要执行的sh文件绝对路径
Restart=on-failure # 失败时自动重启[Install]
WantedBy=multi-user.target # 开机自启,命令行模式(无图形界面)
3.赋予脚本可执行权限:
chmod +x /home/username/myscript.sh
4.启用并启动服务
sudo systemctl enable myautostart.service
sudo systemctl start myautostart.service