Python 如何实现守护进程?
什么是守护进程?
守护进程是一种进程驻留内存的后台进程,它脱离终端控制,不受终端信号影响,即 Ctrl+C,通常守护进程用于周期性的执行某种任务或持续等待处理某些发生的事件。
编程原理
- 程序调用 fork()函数后,内存中的程序会在克隆出一份,然后使父进程退出,只保留子进程。父进程就是手终端信号控制的,例如Ctrl+C
- 如果你不想使用 root 用户运行,还可以通过 setuid,setgid 改变子进程的运行用户和组。
- 也可以改变子进程的工作目录和文件创建掩码
- 与守护进程通信需要用到信号处理。
下面的Python例子实现了:
- 守护进程的启动
- 守护进程的退出
- 日志切割
- 优雅重启
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
#=====================================================&#