Ambos têm suas próprias vantagens e desvantagens:
nohup:
- é bom usar nohup para executar processos em segundo plano quando os processos não precisam de nenhuma entrada do usuário, como um servidor web ou qualquer outro processo de servidor como esse.
- nohup cria log no diretório de execução do processo. O nome do arquivo de log é
nohup.out
.
- Evita que o processo seja interrompido devido a Ctrl+ Ccombinação de teclas errada
ou semelhante. Apenas uma salvaguarda.
- Normalmente, é instalado por padrão com a configuração básica. Não há necessidade de instalar separadamente como a tela.
- Sua funcionalidade é muito específica para executar um trabalho em segundo plano e descarregar a saída. Consome pouca memória.
tela:
- Tem que instalar separadamente. Você não pode ir a um data center ou fazer login em qualquer caixa e esperar que a tela esteja presente.
- É bom gerenciar vários terminais em assuntos separados e dar nomes a eles.
- É mais um gerenciador de terminal e não um comando para executar um processo por tempo infinito, como nohup.
- É mais adequado se o processo precisar de entrada do usuário. Como scripts de instalação, solicitações de sim / não.
- Com toneladas de recursos, vem sua memória. Mas, concordou, alguns são realmente ótimos recursos.
@rahmu, nunca vou adivinhar pid se quiser matá-lo. Certifique-se antes de matar alguém / alguma coisa;).
Melhor maneira em ambos os casos para tela e nohup é:
ps -eaf | grep "nohup" | grep "your proc name/keyword"
.
Use a tela e verifique o que está sendo executado nela.
Para concluir, são duas coisas diferentes feitas com agendas diferentes, portanto a comparação é difícil.
nohup [...] > fileName.log 2>&1
. Além disso, isso significa que a saída não é perdida.