Embora todas as respostas sobre sudo
vs su
estejam corretas, elas não abordam a parte &
da pergunta.
O problema de tentar fazer algo como sudo somecommand &
é que ele origina sudo
(o que acontece antes que ele tenha a chance de solicitar a senha). Você deseja usar o plano de fundo somecommand
. O &
é um operador de shell, portanto, ele tem precedência e opera antes de chamar qualquer comando. Isso precisa ser alterado para que sudo
aconteça primeiro e, em seguida, o plano de fundo.
Como &
é um operador de shell, precisamos que o sudo lance outro shell para poder manipulá-lo. A maneira de fazer isso é algo como o seguinte:
sudo sh -c 'somecommand &'
Dessa forma, você obterá o prompt sudo
da senha e, em seguida, o sudo iniciará sh -c 'somecommand &'
, portanto, o segundo plano será tratado por um novo shell em vez do atual.