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.
Вы можете попытаться сделать это в той же директории, где находится ваш журнал?
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 Он большой, тяжелый, деревянный!