Você já precisou rodar algum comando em segundo plano no Linux? Executar algo que ficasse lá, independente de qualquer coisa, e que você ficasse liberado, sem ter que deixar sua máquina logada com uma sessão aberta? Eu precisei disso certa vez, e vou compartilhar como fazer…
Para rodar algo em segundo plano (ou background) no Linux, basta acrescentar o & ao final do seu comando, como mostro abaixo:
1 2 3 4 5 |
comando & script & /caminho/para/comando arg1 arg2 & comando1 | comando2 & comando1 | comando2 -arg1 -arg2 > /caminho/para/saída & |
Um exemplo prático seria esse:
1 |
ls *.php > saida.txt & |
Se você precisar trazer esse comando de volta para primeiro plano (ou foreground), basta usar uma dessas duas alternativas:
1 2 3 |
% JOB-ID fg JOB-ID |
Simples não é? Mas espera aí… O que é esse job id? É o número de processo que seu comando recebe ao ser executado, e para vê-lo, basta digitar:
1 |
jobs -l |
O retorno do comando trará algo como na imagem abaixo:
Mas atenção, se você se desconectar da sessão em que usou para iniciar o comando em segundo plano, e abrir outra sessão, o jobs não vai funcionar como esperado, e aí você tem que recorrer a outro comando:
1 |
ps aux | grep comando |
A saída será algo como na imagem abaixo:
Ok, agora você tem tudo o que precisa saber… Tenha um bom trabalho!
Referência: http://www.cyberciti.biz/faq/linux-command-line-run-in-background/