No post Brincadeira de Natal… em Macs Expostos disse que para colocar a tarefa que vai “falar” com o utilizador a funcionar em background se podia utilizar o utilitário screen.
A escolha do screen para mim é óbvia porque normalmente é a forma mais fácil de aceder ao irc.freenode.net mantendo o meu nick logado.
[ad#ad-1] No entanto o Gonçalo Silva sugeriu nos comentários que para a tarefa em questão havia alternativas melhores que o screen.
Do brainstorming nos comentários surgiram duas alternativas ao screen:
1) Utilizar o nohup nohup ./task.sh &
O nohup permite correr o processo evitando que este responda ao sinal HUP (hangup) o que lhe permite continuar a correr mesmo depois do fechar da sessão que o iniciou.
2) Utilizar parêntesis para colocar o comando como child do init e não da shell em questão: (./task.sh &)
Os parêntesis, segundo o Gonçalo, colocam a tarefa como child do init (pid 1) que é o processo pai de todos os outros processos.
Obrigado ao Gonçalo por ter ensinado mais um truque.