我使用bash运行以下命令来启动Django应用程序,即使我从该shell退出也没有任何问题。
python manage.py runfcgi daemonize=true ...
当Jenkins运行上述相同命令时,Django应用程序运行以及使用bash运行。但是为什么应用程序在作业结束时会被杀死?
答案 0 :(得分:2)
我猜想Jenkins会为每个作业启动一个新的shell会话,然后在作业完成时关闭它。这将终止在该会话中启动的所有进程。
如果您希望关闭会话后进程保持不变,可以使用nohup
启动它:
nohup python manage.py runfcgi daemonize=true ...
我过去使用过类似的问题 - 即使我将daemonize标志设置为true,服务也会终止。我使用nohup
解决了这个问题。
答案 1 :(得分:0)
我在这里找到了一个解决方案,它对我有用 https://wiki.jenkins-ci.org/display/JENKINS/ProcessTreeKiller