gpt4 book ai didi

python - 在 i3 中使用 disown 时 Python 退出时子进程终止

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

我目前有以下设置:

在 i3 配置中:

bindsym $mod+d exec xfce4-terminal --title="Supermenu" -e "path/to/supermenu"
for_window [title="Supermenu"] floating enable

它执行的脚本是一个 Python 脚本可执行文件(使用 shebang 和 chmod +x),其中有这一行(在许多其他行中,与它无关):

os.system(command + " >/dev/null 2>&1 &")

我的期望是,当 Python 脚本退出时,command 调用的进程应该保持运行,因为 &。但是,一旦 xfce4-terminal 退出,它仍然会退出! (这发生在脚本明显终止之后)。

我也试过在最后加上 disown 和在开头加上 nohup,两者都没有区别。

我可以确认它在脚本退出时发生,因为我尝试使用 time.sleep 来查看它是否启动,是的,它启动了 - 但在终端关闭后终止。

但是,如果我启动 firefoxghetto-skype,它们会终止,但是 xfce4-terminal 不会“菜单”关闭后终止!

甚至很奇怪 - 如果我从 xfce4 终端(而不是 i3)启动脚本,子进程也不会终止!

我对发生的事情感到非常困惑,如果能帮助我理解它,并防止 xfce4-terminal 以外的进程在菜单关闭后关闭,我将不胜感激。

最佳答案

您没有重定向标准输入。我猜它在 xfce4-terminal 关闭时得到一个 EOF。

关于python - 在 i3 中使用 disown 时 Python 退出时子进程终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39794457/

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