从父进程分离子进程

2024-06-11 15:45:07 发布

您现在位置:Python中文网/ 问答频道 /正文

是否有更好的方法将子进程与父进程分离

问题陈述

cron daemon进程(24*7运行)在给定的一天内(根据时间表)启动多个短期job.py进程。我想确保如果cron守护进程接收到SIGTERM,那么它对cron守护进程启动的短期job.py进程没有影响。为了实现这一点,我做了以下几点

cron_daemon.py launches job.py
   job.py forks
     fork 
       setsid
       ssh localhost python job.py 
   quit

这样,我就可以确保如果cron-daemon接收到SIGTERM,那么job.py不会终止,因为它将从cron-daemon.py分离,并被init采用

但是这里的问题是性能受到了影响,因为job.py的模块被多次加载(第一次是cron守护进程从job.py启动job.py,然后从job.py启动fork call,然后再次从fork call启动job.py)。有更好的解决办法吗


Tags: 方法py进程job时间表forkcallssh