Amazon Linux: Não é possível registrar a saída da tarefa em segundo plano?

2

Recentemente, nos mudamos para instâncias do AWS EC2 com a distribuição do Amazon Linux.

Em nossos servidores antigos (RH Enterprise), conseguimos executar um comando em segundo plano ( & ) e também redirecionar a saída para um arquivo de log, como o abaixo:

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

No entanto, isso não funciona mais na AWS. log.txt é criado, mas está vazio.

Se eu deixar o & então a tarefa é executada em primeiro plano ( php /path/to/script > log.txt ), funciona e log.txt contém dados.

O que estou fazendo de errado aqui e / ou o que posso fazer para que a saída dos meus scripts seja registrada novamente?

Obrigado antecipadamente.

Veja um exemplo de código do que está acontecendo:

[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 /]$
    
por DOOManiac 02.01.2014 / 22:47

5 respostas

2

Tenho certeza que está relacionado à sua configuração do /etc/php.ini ou à maneira como o pacote php é compilado para o Amazon Linux. Eu tentei no MacOS e funciona bem também. Você pode comparar o que você tem localmente com o que você tem na AWS.

Tente o seguinte nas duas máquinas. Crie um script chamado logtest.sh

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

execute:

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

Se funciona em ambas as máquinas, então é definitivamente um problema de configuração do php.

    
por 03.01.2014 / 02:02
0

Tente executá-lo com nohup

nohup php /path/to/script > log.txt &
    
por 03.01.2014 / 00:57
0

Estranho ... funciona para mim, no amazon, mas no Debian.


root@domU-12-31-39-0F-31-10:/home/try$ php i.php
It's big, it's heavy, it's wood!

root@domU-12-31-39-0F-31-10:/home/try$ php i.php >loh.txt &
[1] 8928
root@domU-12-31-39-0F-31-10:/home/try$
[1]+  Done                    php i.php > loh.txt
root@domU-12-31-39-0F-31-10:/home/try$
root@domU-12-31-39-0F-31-10:/home/try$ cat loh.txt
It's big, it's heavy, it's wood!

    
por 03.01.2014 / 01:42
0

Você também pode usar a tela ?? tela do homem

    
por 03.01.2014 / 01:47
0

você pode tentar fazer isso, no mesmo diretório onde está o seu log?

echo "test" > log.txt

Isso pode desqualificar um sistema de arquivos completo e ler somente as opções do sistema de arquivos.

    
por 03.01.2014 / 08:18