Linux Daemon¶
Daemon 也叫 守护进程, 是 Linux 中一种特殊的进程, 不会被普通的 signal 给 terminate 掉, 只能被 Kill. 常用于运行后台服务. 但 守护进程 不是 后台服务, 后台服务 会包含多个 守护进程.
前台运行 和 后台运行 (Daemon) 的区别¶
从终端的角度看的区别:
我们以 MongoDB 的 mongod (https://docs.mongodb.com/manual/reference/program/mongod/#bin.mongod) 为例.
mongod
是一个 bin tool, 可以在本地运行 MongoDB. 但是如果你在终端中输入该命令, 一旦运行, 该终端窗口就无法再做其他事情了.
而如果你在终端里用 brew services start mongodb-community@4.4
(https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/) 命令运行, 他会在后台启动一个服务. 而你可以在该终端里继续做其他事情.
所以从终端的角度看, 前台运行就是 会占用终端, 后台运行就是 不会占用终端.
如何用 Python 运行守护进程¶
Python 社区最好的 daemon 包应该是 python-daemon, 作者得到了社区的认可, 并有计划将其加入到标准库.