2014-06-22 115 views
0

我有一个运行在linux上的python守护进程。我正在实现一个自动更新功能,它可以这样工作:如何避免父进程终止在Python中的进程终止

  1. 当检测到新版本时,应用程序使用subprocess.call调用更新器脚本。由于守护程序停止
  2. 子进程(这在现实中是更新脚本)停止了守护
  3. ,更新脚本也终止:/

所以我的问题是我怎么能在某种程度上推出更新脚本它不会依赖于父进程。换句话说,我不希望父进程终止导致子进程终止。

环境:Linux Mint的16

的Python 3.3

感谢

+0

看看http://stackoverflow.com/questions/473620/how-do-you-create-a-daemon-in-python和https://pypi.python.org/pypi/daemonize/。 –

回答

1

你可以做线沿线的东西:

from subprocess import Popen 

updater = ['/usr/bin/python', '{PATH TO}/updater_script.py', '&'] 
Popen(updater) 

的更新将不会受到后台程序的影响收盘。

+0

谢谢,但它没有奏效。父进程停止时子进程终止:( – Davita

+0

我已经更新了我的答案,可能有效......它看起来有点冒险,但它可能值得一试 – cchristelis

+0

我也试过了,它也没有帮助。我发现的唯一方法是将子进程守护进程。这对于一个简单的任务来说有点花销,但它可以工作。无论如何感谢 – Davita