守护进程

【一】什么是守护进程

  • 守护进程 (daemon) 是在计算机系统启动时就已经运行,并且一直在后台运行的一类特殊进程。
  • 它们通常不与用户直接交互,也不接受标准输入和输出,而是在后台执行某种任务或提供某种服务。
  • 守护进程往往是由系统管理员手动启动的,它们可以在系统启动时自动启动,一直运行在后台,直到系统关闭或被停止。
  • 常见的守护进程包括网络服务 (如 web 服务器、邮件服务器、 ftp 服务器等)、日志记录系统 (如系统日志服务、应用程序日志服务等) 等。
  • 守护进程通常在后台运行,不需要用户交互,并且有较高的权限,因此编写守护进程需要特别注意安全性和稳定性。

【二】主进程死亡,子进程未死亡

from multiprocessing import Process
import time


def task(name):
    print(f'总管:>>>>{name}>>正常存货')
    time.sleep(2)
    print(f'总管:>>{name}正常死亡')


if __name__ == '__main__':
    print(f'皇帝:>>>ChiMeng>>> 执掌江山')
    p = Process(target=task, kwargs={"name": "zhang"})

    p.start()
    print(f'皇帝:>>>ChiMeng>>> 寿终正寝')
    
# 皇帝:>>>ChiMeng>>> 执掌江山
# 皇帝:>>>ChiMeng>>> 寿终正寝
# 总管:>>>>zhang>>正常存货
# 总管:>>zhang正常死亡

【三】父进程死亡了,子进程未死亡

import multiprocessing
import time


def task(i):
    print(f'总管:>>>>{i}:>>>>存活')
    time.sleep(2)
    print(f'总管:》》》》{i}>>>>死亡')


if __name__ == '__main__':
    name = 'zhang'
    print(f'当前皇帝{name}:>>>>执掌江山!')
    process = multiprocessing.Process(target=task, args=('hope',))
    process.start()
    print(f'当前皇帝{name}:>>>>寿终正寝!')
# 当前皇帝zhang:>>>>执掌江山!
# 当前皇帝zhang:>>>>寿终正寝!
# 总管:>>>>hope:>>>>存活
# 总管:》》》》hope>>>>死亡
import multiprocessing
import time


def task(i):
    print(f'总管 :>>>> {i} :>>>> 存活')
    time.sleep(2)
    print(f'总管:>>>>{i}:>>>>死亡')


if __name__ == '__main__':
    name = 'zhang'
    print(f'当前皇帝{name}:>>>>执掌江山!')
    property_hope = multiprocessing.Process(target=task, args=('hope',))
    property_hope.daemon = True
    property_hope.start()
    print(f'当前皇帝{name}:>>>>寿终正寝!')
    
# 当前皇帝zhang:>>>>执掌江山!
# 当前皇帝zhang:>>>>寿终正寝!
posted @ 2024-01-23 14:26  Fredette  阅读(52)  评论(0)    收藏  举报