gpt4 book ai didi

python - 在脚本上将 nohup 重定向到标准输出

转载 作者:太空宇宙 更新时间:2023-11-04 10:00:46 31 4
gpt4 key购买 nike

我有一个 .sh 脚本,它通过 nohup 运行很多 Python 脚本。

我使用 nohup 在后台运行它们,避免在出现“nohup:忽略输入并将输出附加到‘nohup.out’时按输入”消息出现。

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 继续”和“将文件导出到 stdout”结合起来呢?

我尝试了这些但没有成功:

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

提前致谢。

最佳答案

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

nohup bash -c "exec python tester.py > /proc/1/fd/1" 2> /dev/null &

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

关于python - 在脚本上将 nohup 重定向到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56378716/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com