Python 脚本在使用 os.system() 运行 命令后停止 运行

Python script stops running after running command using os.system()

我的 python 脚本在 运行 宁 os.system() 后冻结。代码如下所示;

command_line = 'java -jar "backup.jar" test'
os.system(command_line)
# python script freezes at this point. Cannot move on to execute code below

不知为何,今天突然遇到这个问题。过去没有问题。没有错误信息。没有提示是什么问题。我更新了最新的 Windows 10 包。不确定是否是这个原因。

如果这个问题无法解决,是否有 os.system() 到 运行 的替代命令,这样 python 脚本就不会冻结?

我在 anaconda 上使用 python 3.8。

像下面这样更改命令,看看命令是否有任何问题。

command_line = 'java -jar "backup.jar" test > /tmp/test.log'

您可以验证 /tmp/test.log 以查看日志中的 java 命令是否有任何问题。 os.system 等待响应。使用具有 return 状态(0 - 如果成功)的 subprocess.call() 方法可以实现同样的效果。要在后台执行 运行 命令,您可以使用 subprocess.Popen() 方法。

我会回答我自己的问题。它基于 rajendrau 的回答,我已将其标记为正确答案。它对我有用。

我做的就是用subprocess.Popen()。脚本不再“冻结”。

subprocess.Popen(['java', '-jar', "backup.jar", 'test'])