2024-05-29 10:30:36 发布
网友
我在Python上有控制台应用程序。我试着用xdg打开并在后台运行,但不行,我试过了
os.system('xdg-open http://google.com &') subprocess.call('xdg-open http://google.com &', shell=True)
我不知道你说什么
but I can't
因为它对我有用。但是,我想,您在抱怨父进程在子进程关闭之前不会关闭。在
然而,这一准则是一种过时的做法(如果它曾经是赞成的话);现代的等效做法应该是
process = subprocess.Popen(['xdg-open', 'Dunno.png'])
它没有要求shell为您分叉,而是从一开始就在后台运行,而不经过shell。这也应该解决上述问题。在
如果要捕获sys.stdout,可以使用
sys.stdout
它将进程的stdout和stderr的输出重定向到缓冲区。(您可以使用process.stdout和process.stderr访问这些缓冲区,并通过读写或使用process.communicate进行通信。在
process.stdout
process.stderr
process.communicate
您可以使用process.returncode获得返回代码。在
process.returncode
如果您的问题不是这个,请提供问题描述(回溯?)会有用的。同样值得检查的是,在shell中使用xgdopen的行为是否符合您的预期。在
我不知道你说什么
因为它对我有用。但是,我想,您在抱怨父进程在子进程关闭之前不会关闭。在
然而,这一准则是一种过时的做法(如果它曾经是赞成的话);现代的等效做法应该是
它没有要求shell为您分叉,而是从一开始就在后台运行,而不经过shell。这也应该解决上述问题。在
如果要捕获
^{pr2}$sys.stdout
,可以使用它将进程的stdout和stderr的输出重定向到缓冲区。(您可以使用
process.stdout
和process.stderr
访问这些缓冲区,并通过读写或使用process.communicate
进行通信。在您可以使用
process.returncode
获得返回代码。在如果您的问题不是这个,请提供问题描述(回溯?)会有用的。同样值得检查的是,在shell中使用xgdopen的行为是否符合您的预期。在
相关问题 更多 >
编程相关推荐