Не удается запустить фоновый процесс в Amazon Linux Instance, но работает в MAC OS X - PullRequest
0 голосов
/ 25 сентября 2011

Я не могу запустить фоновый процесс в экземпляре Amazon Linux, но то же самое работает в Mac OS X

Я пытаюсь запустить скрипт php через строку cmd.На Amazon Linux он работает нормально, если я не добавлю символ & в конце.Если я добавляю &, он имеет T в качестве STAT

Вот что произойдет

[root@someIp somePath]# php /path/to/myPhpScript.php arg1 arg2 arg3 > /dev/null 2>log.txt &
[1] 17849

[root@someIp somePath]# jobs
[1]+ Stopped php /path/to/myPhpScript.php arg1 arg2 arg3 > /dev/null 2>log.txt

[root@someIp somePath]# bg 1
[1]+ php /path/to/myPhpScript.php arg1 arg2 arg3 > /dev/null 2>log.txt &

[1]+ Stopped php /path/to/myPhpScript.php arg1 arg2 arg3 > /dev/null 2>log.txt

[root@someIp somePath]# 

Но если я бегу без &, то все нормально.

[root@someIp somePath]# php /path/to/myPhpScript.php arg1 arg2 arg3
Prints some output...
Prints some output...
Prints some output...
Prints some output...
Done...
[root@someIp somePath]#

Та же ситуация: https://forums.aws.amazon.com/thread.jspa?messageID=281552

Спасибо!

1 Ответ

2 голосов
/ 25 сентября 2011

Я сам понял.

По какой-то причине он останавливается, потому что думает, что требует какой-то ввод с клавиатуры. Как:

0: стандартный ввод (обычно клавиатура)

1: стандартный вывод (обычно монитор)

2: стандартная ошибка

Поэтому я добавил стандартный ввод для чтения из /dev/null.

Я изменил свой cmd следующим образом:

# php /path/to/myPhpScript.php arg1 arg2 arg3 0</dev/null 1 >/dev/null 2>log.txt &

OR

# php /path/to/myPhpScript.php arg1 arg2 arg3 </dev/null >/dev/null 2>log.txt &

Спасибо! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...