【发布时间】:2013-12-03 01:06:36
【问题描述】:
我有一个 python 脚本,它应该执行一个 shell 脚本。但它应该在执行前休眠 30 秒。我希望脚本在后台休眠,然后执行。
Shell 命令应该是这样的: 如果我直接在控制台输入这个命令,它就可以工作。
(sleep 30 && /root/bin/myscript.sh parameter1 parameter2) > /dev/null 2>&1
现在来自python:(我已经划分了命令)
subprocess.call(['/bin/sleep', '30', '&'])
subprocess.call(['/root/bin/myscript.sh', str(dom), str(limit), '&'])
(str(dom)和str(limit)是2个参数)
我收到此错误:
/bin/sleep: invalid time interval `&'
为什么用&作为参数而不是30?
【问题讨论】:
-
你为什么不直接使用
time.sleep(secs)? docs.python.org/2/library/time.html#time.sleep -
我想回到控制台,不要等待 20 秒,直到脚本执行完毕。
-
在后台调用
sleep只会导致myscript.sh与sleep并行运行,而不是在sleep之后运行。多次调用subprocess.call不会将它们启动的进程排队。