【发布时间】:2010-02-03 16:35:46
【问题描述】:
好的,这是一个有点棘手的问题。我需要启动一个后台进程,它将(1)等待 N 秒,然后(2)执行一些命令。此外,我需要捕获后台进程本身的 pid,因为当父进程完成时,它会在必要时终止后台进程。在 shell 语法中看起来有点像这样:
(sleep 15 && run_some_cmd) & # launch bg process
bg_pid=$! # capture the bg pid
# do some stuff here...
kill -9 $bg_pid # and kill the bg_pid if necessary
这就是 shell 中的启动。但是,我正在尝试在 Python 中执行此操作。棘手的是,由于我需要捕获 bg pid,我不能使用 os.system() 或 os.fork(),因为在每种情况下,父进程都无法访问子进程的 pid。我试图让它与 subprocess.Popen() 一起工作,但考虑到“睡眠 15”部分,这有点棘手。
有什么想法吗?
【问题讨论】:
标签: python