Em vez de executar sudo
em segundo plano, informe sudo
para executar o comando em segundo plano. De man sudo
:
-b, --background
Run the given command in the background. Note that it is not
possible to use shell job control to manipulate background
processes started by sudo. Most interactive commands will
fail to work properly in background mode.
Por exemplo:
sudo -b sleep 10
Outra maneira seria apenas usar um shell para executar o comando:
sudo sh -c 'sleep 10 &'
Outra opção seria especificar um programa gráfico para obter a senha e enviar sudo
para o segundo plano:
-A, --askpass
Normally, if sudo requires a password, it will read it from
the user's terminal. If the -A (askpass) option is
specified, a (possibly graphical) helper program is executed
to read the user's password and output the password to the
standard output. If the SUDO_ASKPASS environment variable is
set, it specifies the path to the helper program. Otherwise,
if sudo.conf(5) contains a line specifying the askpass
program, that value will be used. For example:
# Path to askpass helper program
Path askpass /usr/X11R6/bin/ssh-askpass
If no askpass program is available, sudo will exit with an
error.
Os programas do Askpass são normalmente usados para o SSH. Uma delas é fornecida pelo pacote ssh-askpass-gnome
, que é instalado por padrão, pelo menos no Ubuntu 15.10.
SUDO_ASKPASS=/usr/bin/ssh-askpass sudo -A sleep 10 &