脚本结束后如何运行进程并退出?

时间:2018-01-29 10:47:24

标签: python python-3.x process subprocess x11

I have asked a question how to run a clipboard clearing command from pythonI got a good answer for that

subprocess.run("xclip",stdin=subprocess.DEVNULL)
subprocess.run(["xclip","-selection","clipboard"],input="")

这似乎在python中有效,但是存在问题,它会使进程保持打开状态。实际上,它会打开2个流程,一个xclip,一个xclip -selection clipboard个参数。

似乎它们是僵尸进程,它们无限期地保留在那里,直到你再次复制粘贴内容。之后,他们两个都消失了。

所以我从USB驱动器的目录中运行了脚本,并且它不允许你移除USB驱动器,它说“USB驱动器忙”,直到进程没有关闭。

所以我要么把新东西复制到剪贴板中,否则这个过程会无限期地保留在那里,就像一个僵尸。

可以在python脚本结束后关闭进程吗?由于在python脚本运行后没有理由让该进程保持打开状态。

1 个答案:

答案 0 :(得分:0)

我必须阅读xclip的来源,看看父母(您的直接孩子)是否等到声明选择退出。如果没有,如果你杀了任何东西,你会与实际工作竞争。您可以使用xsel -c(正如其他问题中所建议的那样);要解决只是卸载问题,您只需更改子项的当前目录:

subprocess.run("xclip",stdin=subprocess.DEVNULL,cwd="/")