Agh*_*n B 2 bash shell ubuntu init
我有一个脚本(sync.sh),它在内部运行 while 循环以进行同步。
#!/bin/bash
while :
do
#my PHP scripts runs parallel
wait
sleep 60
done
Run Code Online (Sandbox Code Playgroud)
我想在我的虚拟机中永远独立运行这个脚本。
我知道我可以使用 nohup, disown 命令将此 sh 文件作为后台进程运行。
但我想知道的是?如何在系统重新启动时运行此 .sh 文件,或者它的进程被终止。如何在 Ubuntu VM 中自动启动 .sh 文件而无需终端命令。(就像我们在系统启动时启动 Apache、MySQL 服务一样)
提前致谢。
小智 5
如果您使用的是 systemD,您应该为脚本sync.sh 创建一个服务,该文件将是:
/lib/systemd/system/sync.service
Run Code Online (Sandbox Code Playgroud)
您可以编辑此文件(使用“root”或“sudo”权限),使其包含:
[Unit]
Description=My Shell Script for Sync
[Service]
ExecStart=/usr/bin/sync.sh
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
然后,重新加载 systemD 守护进程(因此它知道已添加服务):
sudo systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
然后您可以启用您的服务(因此它将在每次系统启动时启动:
sudo systemctl enable sync.service
Run Code Online (Sandbox Code Playgroud)
然后你可以手动启动它,这样它就会立即启动,而不是等待下一次系统重新启动:
sudo systemctl start sync.service
Run Code Online (Sandbox Code Playgroud)
(当然,您可以更改服务的名称,它不一定称为“sync.service”
| 归档时间: |
|
| 查看次数: |
3061 次 |
| 最近记录: |