Скрипт работает!
Сначала я набираю это в своем CLI: php worker.php >>/home/xxx/log 2>&1
Затем я хочу, чтобы он запускался как свой собственный процесс или как угодно, поэтому я добавляю &
в конце, как это: php worker.php >>/home/xxx/log 2>&1 &
Но теперь скрипт никогда не выполняется, потому что к /home/xxx/log
ничего не добавляется, и когда я проверяю ps -fux
скрипт все еще там.
Одна вещь, которую я не понимаю, это то, что когда я запускаю последнюю команду, я получаю следующее:
xxx@xxx:/path$ php worker.php >>/home/xxx/log 2>&1 &
[1] 10659
Позже, когда я пытаюсь выйти из оболочки, она говорит мне следующее:
xxx@xxx:/path$ logout
There are stopped jobs.
[1]+ Stopped php worker.php >> /home/xxx/log 2>&1
Что здесь происходит? Все, что я хочу, это запустить скрипт в фоновом режиме и добавить весь вывод в файл.
Спасибо!
РЕДАКТИРОВАТЬ:
Вот пример.
user@box:~/nohuptest$ vim worker.php
user@box:~/nohuptest$ touch log
user@box:~/nohuptest$ php worker.php >> log 2>&1 &
[1] 31523
user@box:~/nohuptest$ cat log
[1]+ Stopped php worker.php >> log 2>&1
user@box:~/nohuptest$ php worker.php >> log 2>&1 &
[2] 31626
user@box:~/nohuptest$ cat log
[2]+ Stopped php worker.php >> log 2>&1
user@box:~/nohuptest$
user@box:~/nohuptest$ cat worker.php
<?php
echo "hello world\n";
?>
user@box:~/nohuptest$