- Antes de mais nada, o processo não sai; ele pára. Existe uma diferença.
- Em segundo lugar, provavelmente acontece imediatamente; você simplesmente não é notificado até depois de pressionar Enter .
- Terceiro, quando você coloca um comando no plano de fundo (com
&
), coloca a entrada padrão em um estado especial então os processos em segundo plano não podem ler do teclado. Quando você colocasudo
em segundo plano, ele não consegue ler a senha, e assim fica parado. -
Corrija isso dizendo
sudo
para colocar o comando em segundo plano (ao invés de dizer ao seu shell de login para colocarsudo
em segundo plano):sudo -b sh -c 'app start'
-
Para um comando simples como "início do aplicativo", não há necessidade óbvia de
sh -c
. Experimentesudo -b 'app start'
P.S. Esta questão realmente não tem nada a ver com sh -c
.
Você teria o mesmo problema com algo como
sudo sleep 42 &