在某些场景下,需要在非阻塞情况下执行其它脚本,python中的subprocess模块,可以完成此任务
详细用法和说明,参见官网:subprocess — Subprocess management — Python 3.13.0 documentation
#! /usr/bin/python
# -*- coding: UTF-8 -*-
import subprocess
import sys
job = sys.argv[1]
try:
command = "/tmp/dotest.csh %s"%job
res = subprocess.Popen(["%s"%command],shell=True)
print "继续执行其它任务!"
#stdout, stderr = res.communicate()
#print stdout
#print stderr
#print res.poll()
except Exception as e:
print "出错%s"%e
dotest.csh来模拟耗时任务
#! /bin/csh
set i = 1
while($i <= 1000)
echo $1 is sleeping
sleep 1 #模拟耗时任务
@ i++
end
执行结果:
将会先打印: 继续执行其它任务!再打印xx is sleeping