Como executar o script perl em segundo plano

1

Sou novo usuário do Ubuntu ...

Colocando & amp; e no final está colocando o aplicativo em segundo plano, mas não realmente, ele ainda me dá a saída do script perl na minha linha de comando, mesmo que esteja rodando em segundo plano. Assim, torna-se inútil, pois tenho que esperar que o script completo seja concluído.

Como:

output of perl..
..
..
Done.

Então, eu ainda tenho que esperar até que o script perl seja executado. Existe alguma maneira de como esse tipo de script pode ser executado em segundo plano para que eu não tenha que esperar?

Eu já tentei seguir:

command > test.txt //This generated emptyfile test.txt and all the output is still on command line instead of test.txt
command > /dev/null
command < /dev/null

Nenhum deles foi bem sucedido.

Por favor, não sugira abrir o novo console de linha de comando, fazendo CTRL + SHIFT + T ou CTRL + ALT + T, porque eu não quero fazer isso, eu quero rodar o script perl em background enquanto faço algum trabalho.

Para outros scripts perl, & amp; está funcionando bem, mas para este, não é, existe alguma maneira?

edite: Tenho a solução graças a John1024 e Volker Siegel.

comando 2 > / dev / null & amp;

    
por user1735921 20.07.2014 / 00:55

2 respostas

2

Os comandos podem produzir saída no stdout ou stderr. Os comandos que você tentou redirecionaram apenas stdout. Em bash , você pode redirecionar a saída de ambos os fluxos de uma vez usando:

command &>test.txt &

Ou

command &>/dev/null &

Se você estiver usando um shell POSIX, será necessário fazer o redirecionamento nas etapas:

command >test.txt 2>&1 &

>test.txt redireciona o stdout para o arquivo test.txt . Como stderr é o identificador de arquivo 2 , o efeito de 2>&1 é redirecionar stderr para onde stdout, indicado por &1 , atualmente.

    
por John1024 20.07.2014 / 00:58
0

Parece que a saída está indo para o fluxo de erros, stderr - portanto, redirecione isso em vez de stdout:

command 2> errors.txt

Ou redirecione os dois juntos para o mesmo arquivo:

command > errors.txt 2>&1

Caso você queira saber a coisa toda - "pule na toca do coelho" - veja Tutorial de Redirecionamento Ilustrado

Veja também nohup - é útil se você quiser manter o comando em execução após fechar o terminal:

nohup command

( man nohup para detalhes)

    
por Volker Siegel 20.07.2014 / 00:58