supervisord 是否管理子进程?
Does supervisord managed subprocess?
我正在使用 supervisord 来管理流程。
(避免僵尸进程,以及其他难以管理的进程)
假设我将 运行 python 使用多处理的脚本。
from multiprocessing import Process
import time
def fetch():
while True:
time.sleep(1)
print("I'm still alive...")
def main():
processes = [
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
[And more process here...]
]
for process in processes:
process.start()
main()
上面的代码,fetch()
创建了许多已处理的和 运行 它。
在这种情况下,如果 fetch()
创建的进程成为僵尸进程,
supervisord 管理它?(例如自动终止并重启)
或者,只管理根进程?
谢谢。
Supervisord 管理子进程,它负责管理它产生的任何东西。但是,如果要确保所有子进程都与主进程一起停止,请在 supervisord.conf
文件中使用 stopasgroup=true
。
参见相关问题:supervisord stopping child processes
我正在使用 supervisord 来管理流程。
(避免僵尸进程,以及其他难以管理的进程)
假设我将 运行 python 使用多处理的脚本。
from multiprocessing import Process
import time
def fetch():
while True:
time.sleep(1)
print("I'm still alive...")
def main():
processes = [
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
Process(target=fetch),
[And more process here...]
]
for process in processes:
process.start()
main()
上面的代码,fetch()
创建了许多已处理的和 运行 它。
在这种情况下,如果 fetch()
创建的进程成为僵尸进程,
supervisord 管理它?(例如自动终止并重启)
或者,只管理根进程?
谢谢。
Supervisord 管理子进程,它负责管理它产生的任何东西。但是,如果要确保所有子进程都与主进程一起停止,请在 supervisord.conf
文件中使用 stopasgroup=true
。
参见相关问题:supervisord stopping child processes