Amazon Linux: Не удается зарегистрировать вывод фоновых задач?

Недавно мы перешли на экземпляры AWS EC2 с дистрибутивом Amazon Linux.

На наших старых серверах (RH Enterprise) мы смогли запустить команду в фоновом режиме (&), а также перенаправить вывод в файл журнала, такой как ниже:

php /path/to/script > log.txt &

Однако это больше не работает на AWS. log.txt создан, но пуст.

Если я опускаю & так, задача запускается на переднем плане (php /path/to/script > log.txt), он работает и log.txt содержит данные.

Что я делаю здесь не так и / или что я могу сделать, чтобы вывод моих сценариев снова был зарегистрирован?

Заранее спасибо.


Вот пример кода того, что происходит:

[ec2-user@ip /]$ cat logtest.php
<?php echo "It's big, it's heavy, it's wood!\n"; ?>
[ec2-user@ip /]$ php logtest.php > log.txt
[ec2-user@ip /]$ cat log.txt
It's big, it's heavy, it's wood!
[ec2-user@ip /]$ rm log.txt
[ec2-user@ip /]$ php logtest.php > log.txt &
[3] 6649
[ec2-user@ip /]$ <I waited 5 seconds and pressed enter here>
[3]+  Stopped                 php logtest.php > log.txt
[ec2-user@ip /]$ cat log.txt
[ec2-user@ip /]$ ll log.txt
-rw-rw-r-- 1 ec2-user ec2-user 0 Jan  3 00:30 log.txt
[ec2-user@ip /]$

5 ответов

Я уверен, что это связано с вашей конфигурацией /etc/php.ini или с тем, как пакет php скомпилирован для Amazon Linux. Я пробовал на MacOS, и он тоже отлично работает. Можете ли вы сравнить тот, который у вас есть, с тем, что есть в AWS.

Попробуйте следующее на обеих машинах. Создайте скрипт с именем logtest.sh

#!/bin/bash
echo "It's big, it's heavy, it's wood!\n"

затем запустите:

chmod 777 logtest.sh
./logtest.sh > log.txt &

Если это работает на обеих машинах, то это определенно проблема конфигурации php.

Also you can use screen?? экран человека

Вы можете попытаться сделать это в той же директории, где находится ваш журнал?

echo "test" > log.txt

Это может привести к дисквалификации файловой системы, полной и доступной только для чтения параметров файловой системы.

Попробуйте запустить его с nohup

nohup php /path/to/script > log.txt &

Странно... у меня это работает, en amazon, но Debian.

root @ domU-12-31-39-0F-31-10: / home / try $ php i.php
Он большой, тяжелый, деревянный!

root @ domU-12-31-39-0F-31-10: / home / try $ php i.php >loh.txt &
[1] 8928
корень @ Дом-12-31-39-0F-31-10: / Главный / попробуйте $
[1]+ Готово php i.php >loh.txt
корень @ Дом-12-31-39-0F-31-10: / Главный / попробуйте $
root@domU-12-31-39-0F-31-10:/home/try$ cat loh.txt
Он большой, тяжелый, деревянный!

Другие вопросы по тегам