运行脚本需要两个 nohup 命令

运行脚本需要两个 nohup 命令

我想运行一个脚本,nohup因为它需要很长时间,但需要密码才能运行。我怎样才能使用nohup.例如,为了以交互方式运行脚本,我首先运行php hat,当它要求输入密钥或密码时,我编写123456

我尝试过nohup php hat & password(例如 123),但没有成功。

答案1

当您使用 运行命令时nohupstdin将从 重定向/dev/null。因此您无法使用nohup并手动输入密码。

根据您使用的程序,您可以使用重定向来输入密码:

$ nohup bash -c 'read; echo $REPLY' <<<'hello'
$ tail -1 nohup.out 
hello

因此,您可以将密码保存在文件中(例如password.txt),并使用类似gpg受密码保护的私钥(以获取password.txt.gpg)之类的方式对其进行加密,然后执行以下操作:

gpg -d password.txt.gpg | nohup php hat

或者,您可以使用类似的东西screen

首先启动一个screen会话(此命令实际上要么启动一个名为 的会话my-php-script-session,要么将已经在前台运行的会话带到前台):

screen -D -RR -S my-php-script-session

然后在打开的 shell 中正常运行命令:

php hat

输入您的密码,然后分离会话screenCtrla,然后是d

您可以通过再次运行第一个命令来重新连接它screen

相关内容