我有一个脚本,它每 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/

10-14 14:18