我的应用程序是rails和python。
在rails中,我创建了一个新线程并启动了一个shell命令来执行python脚本。
这个Python脚本(父进程)将很快退出,但在退出之前,它将分叉子进程,子进程在父进程退出后将成为孤儿进程。
情况1:
如果我用rails启动应用程序:rails s -d
当Python父进程退出并且Python子进程即将运行时:
kill pid(./tmp/pids/server.pid)
这样子进程就可以了,不会被杀死。这就是我想要的。
情况2:
如果我通过乘客启动应用程序:
passenger start -e production -d
当Python父进程退出并且Python子进程即将运行时:
passenger stop;
然后,子进程将被终止。
所以我想知道,在第二种情况下,孤儿的过程中不能被杀死吗?有没有人经历过或知道如何解决?

最佳答案

我已经解决了我的问题
重新启动我的应用程序而不是重新启动乘客
restart app命令:passenger config restart app[我的应用的路径]

10-08 00:42