linux shell脚本:如何创建一个将在后台运行的服务?

时间:2014-07-18 04:46:49

标签: php linux shell

我有一个简单的问题,我搜索过,找不到解决方案。

我有一个简单的shell脚本,每2秒运行一个小的PHP代码,我写了它并保存为文件:

$ cat every-2-seconds.sh
#!/bin/bash
while true
do
php /home/account/domains/domain.co.il/public_html/my-php-script.php
 sleep 2
done

现在,我需要这个脚本总是在后台运行,但我还需要它会在启动时运行,就像服务一样,它应该总是在后台运行,而我从不想要手动启动它(当然,如果发生了什么事情它会停止,我应该能够手动启动它) 我听说过nohup,但它不是服务对吗?我可以在启动时启动.. :(

你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您可以使用这行代码运行脚本(假设您在脚本的目录中)

nohup every-2-seconds.sh &

&会将此作为后台任务运行,nohup即使在您与会话断开连接后也会继续运行。

要在reboot上启动它,您需要将此命令添加到您的crontab

crontab -e
@reboot /path/to/every-2-seconds.sh > /dev/null

在crontab中,您需要指定完整路径。您可以将/dev/null更改为要输出的文件(假设您需要输出)