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

Python脚本在使用os.system()运行命令后停止运行,python,python-3.x,os.system,Python,Python 3.x,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

我的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
由于某种原因,我今天突然遇到了这个问题。过去没问题。没有错误消息。没有关于问题所在的提示。我更新了最新的Windows10软件包。不确定这是否是原因

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


我正在anaconda上使用python 3.8。

更改如下命令,以查看命令是否存在任何问题

command_line = 'java -jar "backup.jar" test > /tmp/test.log'
您可以验证/tmp/test.log,查看日志中的java命令是否存在任何问题。
系统等待响应。返回状态为(0-如果成功)的subprocess.call()方法也可以实现同样的效果。要在后台运行该命令,可以使用subprocess.Popen()方法。

我将回答我自己的问题。这是基于拉詹德罗的答案,我已经标记为正确答案。它对我有用

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


Python在这里“冻结”的程度不亚于等待任何输入。但是,它会等待目标程序终止,然后从
os.system
返回。在任何情况下,都包含允许“异步”运行其他进程的不同方法。YMMV,因为他们还需要等待java进程结束以保证执行完成。它不是冻结的,它可能在后台执行。你等节目结束等了多久?
subprocess.Popen(['java', '-jar', "backup.jar", 'test'])