shell脚本后台执行 开启自启

要在后台执行Shell脚本并设置它开机自启,你需要执行两个步骤:

后台执行Shell脚本

要将Shell脚本在后台执行,你可以使用nohup命令来忽略挂起(SIGHUP)信号,这样即使你关闭了终端,脚本也会继续运行。同时,使用&将命令放到后台执行。

 
nohup /path/to/your/script.sh &

这将会启动脚本,并且即使你关闭了终端,脚本也会继续运行。nohup命令会将输出重定向到一个名为nohup.out的文件中,除非你指定了其他的输出文件。

设置脚本开机自启

要设置脚本开机自启,你可以使用systemdcron@reboot选项或者/etc/rc.local(对于某些系统)。下面我将介绍使用systemd的方法,因为它更加现代和灵活。

首先,你需要创建一个systemd服务单元文件来描述你的脚本。创建一个新的服务单元文件,例如/etc/systemd/system/your-script.service,并添加以下内容:

 
[Unit]
Description=My custom startup script
After=network.target

[Service]
Type=simple
ExecStart=/path/to/your/script.sh
Restart=on-failure
User=your-username
Group=your-groupname

[Install]
WantedBy=multi-user.target

确保替换DescriptionExecStartUserGroup为你自己的脚本描述、脚本路径、运行脚本的用户名和组名。

然后,重新加载systemd守护进程并启用你的服务:

 
sudo systemctl daemon-reload
sudo systemctl enable your-script.service

现在,你的脚本将会在系统启动时自动运行。如果你想要立即启动服务而不是等待下次重启,可以运行:

 
sudo systemctl start your-script.service

如果你不想使用systemd,你也可以使用cron@reboot选项。只需编辑crontab文件(使用crontab -e命令),然后添加以下行:

 
@reboot /path/to/your/script.sh

这将会在每次系统启动时运行你的脚本。但请注意,使用cron@reboot选项时,脚本会在系统完成所有启动服务后执行,这可能会比使用systemd的服务稍晚一些。

所以我们不建议用这种方案

使用/etc/rc.local也是一种方法,但这种方法在一些现代的Linux发行版中已经不常用了,因为它不支持依赖管理和服务重启。如果你的系统上有/etc/rc.local,你可以在文件末尾添加你的脚本路径,并确保文件具有执行权限。

请根据你的具体需求和系统环境选择最适合你的方法。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三希

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值