O script em execução precisa de dois comandos com nohup

1

Eu quero executar um script com nohup porque leva muito tempo, mas ele precisa de uma senha para ser executado. Como posso escrever o comando usando nohup . Por exemplo, para executar o script interativamente eu executo primeiro php hat e quando ele pede uma chave ou senha eu escrevo 123456 .

Eu tentei nohup php hat & password (por exemplo, 123), mas isso não funcionou.

    
por user92612 24.11.2014 / 06:29

1 resposta

2

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.

    
por 24.11.2014 / 07:14

Tags