gpt4 book ai didi

bash - 如何让 bash 脚本永远作为系统后台进程运行?

转载 作者:行者123 更新时间:2023-12-04 18:36:17 25 4
gpt4 key购买 nike

我有一个脚本(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”

关于bash - 如何让 bash 脚本永远作为系统后台进程运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68484974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com