Linux (Ubuntu) Execute o programa em segundo plano

Linux (Ubuntu) Execute o programa em segundo plano

Estou tentando executar um script PHP em segundo plano no meu servidor Linux por meio de SSH (Putty), mas não estou conseguindo que isso funcione.

O comando que quero executar em segundo plano é:

php buildscript/build_css.phpcomoroot@FIG-VMSAM:/var/www/wem#

Eu tentei isso e consegui apenas isso e não funcionou, (não construa meu CSS para mim)

root@FIG-VMSAM:/var/www/wem# php buildscript/build_css.php &
[1] 2274

[1]+  Stopped                 php buildscript/build_css.php

Também tentei iniciar o comando normalmente e depois colocar em segundo plano, <Ctrl>+z mas também não funciona.

Como pano de fundo no meu script PHP eu uso system()e chamostylus http://learnboost.github.com/stylus/ e inotifywaitse isso é para ajudar?

Alguém sabe por que isso não funciona para mim?

Responder1

Outra resposta rápida é... presumir que o programa realmente não precisa de nenhuma entrada do usuário:

 php buildscript/build_css.php </dev/null &

A razão pela qual ele está parando é que o programa está abrindo stdinpor algum motivo, mesmo que não precise de nenhuma entrada.

Responder2

Seria possível executar o script em uma tela separada?

sudo apt-get install screen

Em seguida, use screen -S screennameonde screenname é o nome que você atribui à sessão de tela.

Uma vez na tela, você pode inserir seu comando,php buildscript/build_css.php

Para sair da sessão, use ctrl+ a+ d.

Para voltar à sessão, usescreen -r screenname

Não se preocupe, ao sair da sessão o comando continuará rodando em segundo plano.

informação relacionada