Quando você executa um comando com nohup
, o stdin
é redirecionado de /dev/null
. Portanto, você não pode usar nohup
e inserir manualmente uma senha.
Dependendo do programa que você está usando, você pode usar redirecionamentos para digitar a senha:
$ nohup bash -c 'read; echo $REPLY' <<<'hello'
$ tail -1 nohup.out
hello
Você pode salvar sua senha em um arquivo (digamos password.txt
) e criptografá-la usando algo como gpg
com uma chave privada protegida por senha (para obter password.txt.gpg
), e faça:
gpg -d password.txt.gpg | nohup php hat
Ou você pode usar algo como screen
.
Primeiro, inicie uma screen
session (esse comando inicia uma sessão chamada my-php-script-session
ou traz uma que já está em execução para o primeiro plano):
screen -D -RR -S my-php-script-session
Em seguida, no shell que é aberto, execute seu comando normalmente:
php hat
Digite sua senha e, em seguida, desanexe a seção screen
: Ctrl a , seguida de d .
Você pode reconectá-lo executando o primeiro comando screen
novamente.