我有一个脚本,它每 X 次运行我的 PHP 脚本:
#!/bin/bash
while true; do
/usr/bin/php -f ./my-script.php
echo "Waiting..."
sleep 3
done
我怎样才能将它作为守护进程启动?
最佳答案
要从 shell 作为完整守护程序运行它,您需要使用 setsid
并重定向其输出。您可以将输出重定向到日志文件,或重定向到 /dev/null
以丢弃它。假设您的脚本名为 myscript.sh,请使用以下命令:
setsid myscript.sh >/dev/null 2>&1 < /dev/null &
这将完全从您当前的 shell(stdin、stdout 和 stderr)中分离进程。如果要将输出保留在日志文件中,请将第一个
/dev/null
替换为您的/path/to/logfile。您必须重定向输出,否则它将不会作为真正的守护进程运行(它将取决于您的 shell 来读取和写入输出)。
关于linux - 将 bash 脚本作为守护进程运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19233529/