O que significa o símbolo e comercial (&) com 'nohup'?

8

Eu vi vários exemplos em que & segue o final de uma sequência de comandos, mas não consigo encontrar uma explicação sobre o que ela faz. Não está nem na página nohup man . Isso é uma coisa de concha?

Ou usando & ou não, acho que qualquer processo executado com nohup parece exibir imunidade a qualquer sinal de desligamento.

    
por Chad Harrison 26.06.2012 / 22:30

3 respostas

15

Na página de manual do bash :

If a command is terminated by the control operator &, the shell executes the command in the background in a subshell. The shell does not wait for the command to finish, and the return status is 0.

Então, sim, é uma coisa de shell e pode ser usada com qualquer comando. Ele essencialmente retorna o controle para você imediatamente e permite que o comando seja concluído em segundo plano. Isso é quase sempre usado com nohup , porque você normalmente deseja sair do shell depois de iniciar o comando.

    
por 26.06.2012 / 22:42
6

O uso do "e" comercial (&) executará o comando em um processo filho (filho para a sessão bash atual). No entanto, quando você sair da sessão, todos os processos filhos serão eliminados.

usar nohup + ampersand (&) fará a mesma coisa, exceto quando a sessão terminar, o pai do processo filho será alterado para "1", que é o processo "init", preservando assim o filho de sendo morto.

    
por 09.07.2013 / 17:30
3

Sim, é uma coisa de shell - ele executa o comando em segundo plano para que você não precise aguardar o retorno do comando atual antes de emitir mais comandos.

    
por 26.06.2012 / 22:41

Tags