子进程设置为守护进程后,在主进程代码执行结束(而非进程退出)后,子进程就终止。

如果子进程没有设置为守护进程,那么主进程会等子进行结束才结束主进程。

1. 守护进程的设置必须在start前设置。

2. 守护进程无法再开启子进程。

from multiprocessing import Process
import timedef work(n):time.sleep(n)print('守护进程。。。。。')if __name__ == '__main__':p = Process(target=work, args=(3,))p.daemon = Truep.start()# p.join()print('主进程内')# 输出结果:
# 主进程内
# 说明:子进程都没有执行到,因为主进程已经结束。

验证守护进程无法再开启子进程:

from multiprocessing import Process
import timedef work(n):time.sleep(n)print('守护进程。。。。。')pp1 = Process(target=time.sleep, args=(3,))pp1.start()if __name__ == '__main__':p = Process(target=work, args=(3,))p.daemon = Truep.start()p.join()print('主进程内')# 输出结果:
# 主进程内
# 说明:子进程都没有执行到,因为主进程已经结束。

输出结果:

报错:

AssertionError: daemonic processes are not allowed to have children    守护进程不能有子进程
守护进程。。。。。
Process Process-1:
Traceback (most recent call last):File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/multiprocessing/process.py", line 258, in _bootstrapself.run()File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/multiprocessing/process.py", line 93, in runself._target(*self._args, **self._kwargs)File "/data/bealla/work/luffy/projects/zuoye/network/test2.py", line 9, in workpp1.start()File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/multiprocessing/process.py", line 103, in start'daemonic processes are not allowed to have children'
AssertionError: daemonic processes are not allowed to have children
主进程内

守护进程练习题:

守护进程在主进程代码执行完毕后就终止。

from multiprocessing import Processimport time
def foo():print(123)time.sleep(1)print("end123")def bar():print(456)time.sleep(3)print("end456")if __name__ == '__main__':p1=Process(target=foo)p2=Process(target=bar)p1.daemon=Truep1.start()p2.start()print("main-------")

输出:

main-------
456
end456

View Code

转载于:https://www.cnblogs.com/beallaliu/p/9190411.html

5.1.6 守护进程daemon相关推荐

  1. Linux守护进程(daemon)

    0x0:守护进程(daemon) 守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务.很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭.另一些只在需要的时候才启动,完 ...

  2. 守护进程中创建的对象php,在PHP中生成守护进程(Daemon Process)

    前两天看到一篇文章<如何使用PHP编写daemon process>,其中对核心代码却没有细说,我又查了一些资料,还看了一本<理解Unix进程>,才搞明白生成守护进程的时候发生 ...

  3. flask使用debug模式时,存在错误时,会占用设备内存直至服务重启才释放;debug模式会开启一个守护进程(daemon process)...

    函数调用顺序flask的app.py的run-->werkzeug的serving.py的run_simple-->调用werkzeug的debug的__init__.py里的类Debug ...

  4. Linux下守护进程(daemon)的实现

    文章目录 守护进程 守护进程的创建 守护进程的实现 守护进程 守护进程是一种特殊的孤儿进程,父进程是一号init进程,运行在后台,与终端和登陆会话脱离关系,不受影响. 守护进程通常系统引导的时候启动, ...

  5. 【Linux编程】守护进程(daemon)详解与创建

    本文主要参考自:linux系统编程之进程(八):守护进程详解及创建,daemon()使用 一.概述 Daemon(守护进程)是运行在后台的一种特殊进程.它独立于控制终端并且周期性地执行某种任务或等待处 ...

  6. Python守护进程daemon实现

    1 守护进程 1.1 守护进程 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行.守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端 ...

  7. Python守护进程 daemon

    守护进程的作用是,我们在linux下运行python程序很多都是在命令行终端中运行的,而通过这样运行的服务其实会变成终端程序的一个子进程.如果ctrl+c退出或者关闭终端,那么服务端程序就会退出.于是 ...

  8. 守护进程(Daemon process)

    什么是守护进程? 守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是 Linux 中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执 ...

  9. mysql进程daemon_守护进程(Daemon)

    守护进程的概念 守护进程(Daemon)一般是为了保护我们的程序/服务的正常运行,当程序被关闭.异常退出等时再次启动程序/恢复服务. 例如 http 服务的守护进程叫 httpd,mysql 服务的守 ...

最新文章

  1. Spring学习总结(4)——Spring AOP教程
  2. 在图像中绘制基本形状和文字
  3. 1-2 软件构造的质量目标
  4. Centos下tmux工具使用方法
  5. 三菱plc与西门子plc编程有什么不同?
  6. 跟着小甲鱼学习C语言
  7. OpenCV常用库函数
  8. ImageMagick将多张图片拼接成一张图片_真没想到!照片加文字和照片拼接,微信就能做到,太方便了...
  9. 中文文本分类语料库-TanCorpV1.0
  10. Pytorch:optim.zero_grad()、pred=model(input)、loss=criterion(pred,tgt)、loss.backward()、optim.step()的作用
  11. html格式化整理输出JSON示例(测试)
  12. 字节测试实习生面试回顾
  13. 吴恩达新动向揭晓:加入精神健康领域的人工智能Woebot
  14. Charon的python数据可视化分析4(饼状图)
  15. 华为数通笔记-路由策略
  16. 我的oracle备份经历
  17. 使用 ESP32 + HaaS Python 打造智能温湿度UI面板
  18. HTML5定稿了,为什么原生App世界将被颠覆
  19. 基于eclipse开发Android天气,基于android平台的天气预报软件的设计与实现.doc
  20. 下行物理信道rs_下行物理信道rs_5G物理层服务模型

热门文章

  1. VLAN(TRUNK端口 ACCESS 端口)
  2. pythoncharm怎么保存_pycharm软件实现设置自动保存操作
  3. 什么是反射,反射能干嘛?
  4. AC自动机 从入门到模板
  5. SSH注解 关于hibernate一对一双向外键级联关系 查询两表的内容 例子
  6. python 标签云_python 制作标签云
  7. php tp5 cms,thinkphpcms
  8. c语言面试题(感觉比较好的题目),天博集团官网 -官方网站
  9. 软考必考之有关计算机的知识产权基础
  10. 修复 eclipse SVN 插件不运行的问题