python中的守护进程和linux中的守护进程有什么区别呢?

python中的守护进程和linux中的守护进程有什么区别呢?

百度查到的是:
在python中说进程以守护进程的形式启动,那么在主进程结束时,守护进程就会被强制结束
在linux中用程序用守护进程的形式启动,那么程序就会在后台运行。linux中的守护进程一般会从开机运行到关机。

有几个问题想不通

  1. python中守护进程是做什么的呢?
  2. python中的守护进程与linux中说的有没有区别?
  3. 他们守护的是什么?

python 守护进程示例:

from multiprocessing import Process

import time

def task():

print('进程被创建')

time.sleep(3)

print('进程结束')

if __name__ == '__main__':

p = Process(target=task,)

# 在进程启动前,设置为守护进程

p.daemon = True

p.start()

print('主进程结束')


回答:

  1. python 中你代码中的设置守护进程,只是为了让程序可以在终端关闭之后继续运行
  2. 本质上没有区别,linux中说一般是从开机运行到关机,是因为,linux的守护进程的业务生命周期就是从开机到关机,如果你上面的python代码中,用一个死循环把 sleep 包围起来,那么你的这个进程也会从脚本启动运行到服务器关机,你主进程主动结束了,守护程序就终止了。linux中守护进程如果出现异常或者主动终止,他也会终止,只是绝大部分的守护任务都是类似 死循环+sleep 这种逻辑进行,甚至是 死循环+sleep+子进程任务 的方式进行,来保证在linux的运行周期内不要退出。 现在的linux 中1号进程是systemd, 然后其他的守护进程都是由systemd来启动,维护,异常后重启等等的。 python写的 supervisord 和他有点像.
  3. 不要纠结这个守护,这只是翻译过来的文字,他其实就是让你的程序运行在终端之外,不会因为你关闭了终端,就自动死掉。他守护你的进程,不要因为终端关闭而终止 只要达到这个目的,而你的进程中有没有异常或者主动退出,你的进程就只能运行到系统关机。

以上是 python中的守护进程和linux中的守护进程有什么区别呢? 的全部内容, 来源链接: utcz.com/a/157327.html

回到顶部