Quais são as diferenças entre executar “command &” e “command -D”?

0

Inicialmente, achei que command & era o comando para "daemonizar" um comando, mas acontece que command -D é o comando adequado. O que exatamente command & faz? Eu não consigo encontrar nada sobre essa opção específica em qualquer lugar, e gostaria de saber se tem um nome e apenas os detalhes técnicos nele

    
por simplycoding 26.06.2017 / 19:12

1 resposta

4

Eu estava um pouco confuso no início, pois command é um comando interno do shell (ele executa um utilitário como um comando e não como, digamos, uma função de shell se essa função existir).

Você usa

$ utility &

para iniciar utility como um processo assíncrono (processo / job em segundo plano).

Do manual 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.

Do manual dash :

If a command is terminated by the control operator ampersand (&), the shell executes the command asynchronously -- that is, the shell does not wait for the command to finish before executing the next command.

The format for running a command in background is:

command1 & [command2 & ...]

(isso é idêntico a a descrição POSIX de & )

Alguns utilitários, geralmente daemons, podem ter sinalizadores que os deixam entrar em segundo plano e -D pode ser um sinalizador comum para serem usados, mas também vi --daemon ou -d . Às vezes, -d (ou qualquer sinalizador) impede que o utilitário se baseie, como sshd -d , que impede que o processo do daemon SSH se baseie e, em vez disso, o executa como um processo em primeiro plano e envia todos os logs saída para saída padrão em vez de para syslog (o -d flag significa "debug" aqui).

No entanto, não há um padrão para esses sinalizadores e cada utilitário que oferece suporte a essas operações pode implementá-los por meio de diferentes sinalizadores. Você precisa ler o manual do utilitário específico com o qual está lidando.

    
por 26.06.2017 / 20:03