繁体   English   中英

在单独的线程中从python启动csh脚本

[英]launch csh script from python in a separate thread

我试图在单独的线程中从python运行csh脚本,即我不想等待脚本完成。

我正在尝试这样做:

subprocess.call(['my_script.csh -w switch'])
print 'Job spawned..'

问题是csh脚本完成后正在打印消息。 有没有办法刚产生csh作业并继续python

您正在寻找subprocess.Popen

from subprocess import Popen
process = Popen(['sleep', '5'])
print 'job spawned'
process.wait()
print 'job complete'

为了明确您的用语,“线程”是单个程序中的执行行,而“进程”是正在运行的程序(可能具有多个线程)。 启动程序时,它几乎总是一个单独的进程,这意味着它是独立运行和异步运行的(不在同一线程上)。 这里的问题是subprocess.call是针对最常见的用例编写的,在这种情况下,您可能要等待被调用的进程完成再继续。 subprocess.Popen是一个为您提供更多功能的类。 除非您使用wait()方法告知它,否则它不会等待该过程完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM