如何解决如何在系统上永远运行 bash 脚本作为后台进程?
我有一个脚本(sync.sh),它在内部运行一个 while 循环以进行同步。
#!/bin/bash
while :
do
#my PHP scripts runs parallel
wait
sleep 60
done
我想在我的虚拟机中永远独立运行这个脚本。
我知道我可以使用 nohup,disown 命令将这个 sh 文件作为后台进程运行。
但我想知道的是什么?如何在系统重新启动时运行此 .sh 文件或它的进程被终止。如何在 Ubuntu VM 中无需终端命令自动启动 .sh 文件。(就像我们在系统启动时启动 Apache、MySQL 服务一样)
提前致谢。
解决方法
如果你使用 systemD,你应该为你的脚本 sync.sh 创建一个服务,这个文件将是:
/lib/systemd/system/sync.service
您可以编辑此文件(使用“root”或“sudo”权限),使其包含:
[Unit]
Description=My Shell Script for Sync
[Service]
ExecStart=/usr/bin/sync.sh
[Install]
WantedBy=multi-user.target
然后,您重新加载 systemD 守护程序(以便它知道已添加服务):
sudo systemctl daemon-reload
然后您可以启用您的服务(因此它将在每次系统启动时启动:
sudo systemctl enable sync.service
然后你可以手动启动它,它会立即启动,而不是等待下一次系统重启:
sudo systemctl start sync.service
(当然,您可以更改您的服务名称,它不一定称为“sync.service”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。