将nohup重定向到脚本上的stdout

时间:2019-05-30 12:53:08

标签: python linux unix nohup

我有一个.sh脚本,该脚本通过nohup运行了许多Python脚本。

我使用nohup在后​​台运行它们,并避免在 nohup:忽略输入并将输出附加到'nohup.out' enter >”消息出现。

nohup python script2.py 2> /dev/null &
nohup python script2.py 2> /dev/null &
[...]

运行此.sh时,我在后台运行了两个Python脚本。

此Python脚本生成一个日志文件,我派生到std.stdout

stream_config = logging.StreamHandler(sys.stdout)  <-- here
stream_config.setFormatter(formatter)
importer_logger.addHandler(stream_config)  

由于实施,我想启动那些nohup,但将标准输出发送到PID 1

我可以轻松地做到这一点,而无需使用nohup,如下所示:

python tester.py > /proc/1/fd/1

但是如何合并“ 不要按Enter继续”和“ 将文件导出到标准输出”呢?

我没有运气尝试过这些

nohup python tester.py > /proc/1/fd/1 2> /dev/null &
nohup python tester.py 2> /proc/1/fd/1 &

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以通过使用Shell间接启动程序来修复命令,以便可以重定向其输出而不是nohup的输出:

ln

这不是最佳选择,但至少可以纠正导致尝试失败的问题。