train.py是一个使用argparse解析输入变量的python程序,在没有附加终端的情况下,应该在后台运行,但总是忽略输入。我测试了以下选项。
/home/workspace# nohup /home/workspace/train.py vgg19 3000 1 cpu &
和
nohup /home/workspace/doit &
哪儿 doit
是一个包含
/home/workspace/train.py vgg19 3000 1 cpu
的结果都是。
home/workspace# nohup: ignoring input and appending output to 'nohup.out'
唯一可行的变通方法是在python程序中对输入变量进行硬编码,然后使用.NET技术。
nohup python -u ./train_LONG.py &
此外,即使是下面的命令也会导致输入被忽略,这让人非常困惑。
nohup ./train_LONG.py -u &
你弄错了错误信息的意思。它与标准输入有关,而不是命令行参数。
郑重声明,要运行一个需要读取标准输入的进程,必须使用 nohup
,添加一个重定向。
nohup yourprogram <file &
或用here文件
nohup yourprogram <<\HERE &
first line of input
second line of input
etc
HERE
或用管子
nohup printf '%s\n' "first line of input" "second line of input" etc |
yourprogram &