【问题标题】:nohup: ignoring input, but my python program DOES require inputnohup:忽略输入,但我的 python 程序确实需要输入
【发布时间】:2020-08-07 15:44:01
【问题描述】:

train.py 是一个 python 程序,它使用 argparse 解析输入变量,并且应该 在没有附加终端的情况下在后台运行,但总是忽略输入。我测试了以下选项:

/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 程序中硬编码输入变量并使用:

nohup python -u ./train_LONG.py &

此外,这非常令人困惑,即使是以下命令也会导致输入被忽略:

nohup ./train_LONG.py -u &

【问题讨论】:

    标签: python linux terminal background nohup


    【解决方案1】:

    Nohup 不接受来自标准输入的输入。在 nohup 中运行时传递输入的最佳选择是使用 argparse 之类的库通过命令行参数获取输入。还有其他替代方法,例如使用网络进行输入或使用其他实用程序(如 screen),但如果您使用的是在后台运行的应用程序,命令行参数通常更易于使用。

    【讨论】:

      【解决方案2】:

      您对错误消息的含义有误。它与标准输入有关,而不是命令行参数。

      为了记录,要运行需要使用nohup 读取标准输入的进程,请添加重定向。

      nohup yourprogram <file &
      

      或使用此处的文档

      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 &
      

      【讨论】:

      • 谢谢大家;我终于得到了应用程序来做我需要的事情1drv.ms/b/s!AstWh2CO-Hmwii-IGOj1Ij24pdpl?e=c4SDcY
      • 目前还不清楚该链接应该展示什么。如果你想分享一个解决方案,一个不需要 JavaScript 的网站可能会更好。但是在这里将您的答案作为单独的答案发布更好。
      • 我发布了报告的链接,因为我无法在“添加评论”框中添加太多细节
      • 我再说一遍:如果您认为该信息有用,请发布您自己的答案。我能够点击,但内容几乎无法阅读,所以我当时放弃了。
      【解决方案3】:

      适合我的解决方案如下:

      1. 构建脚本do_script
      2. 提交脚本nohup /home/workspace/do_script &amp;

      do_script 在哪里

          #!/bin/bash 
          python -u /home/workspace/train.py vgg19  8000 15  cuda 
      

      上面的第 1 步是决定性的;建议使用具有类似要求的different application。 此外,在这项工作开始时,我在日志文件中没有看到任何输出:this blog 请注意 -u 标志有助于避免输出缓冲。 因此,应用程序在工作区断开连接并在日志文件中收集所有相关输出时仍然存在

      【讨论】:

        猜你喜欢
        • 2014-08-30
        • 2017-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-16
        • 1970-01-01
        相关资源
        最近更新 更多