前言
学Redis的过程中看到教程里说Redis服务端程序redis-server
是以非daemon形式启动的,联想到Docker教程中docker服务端是以daemon形式启动的,于是想搞明白这个daemon到底是个啥玩意儿。
守护进程
daemon被翻译为守护进程,百度百科解释为“守护进程是一类在后台运行的特殊程序”,用于执行特定的系统任务,很多守护进程在系统引导的时候启动。here
这时就有一个疑问,redis-server
默认以非daemon形式启动,但在doc中提到,修改redis.conf
配置文件,写入daemon yes
可以让redis-server
以daemon形式启动,但是linux中在命令结尾添加&
符号可以让进程后台运行,那后台进程和daemon进程有啥区别嘞??(疑惑脸.jpg
守护进程和后台进程的区别
关于daemon的描述中很重要的一点提到,守护进程后台运行且不受任何终端控制,尝试做个实验
-
使用
&
符号把redis-server
进程后台挂起,用pstree
打印进程信息systemd─┬─NetworkManager─┬─dhclient │ └─2*[{ NetworkManager}] ├─2*[agetty] ├─atd ├─auditd───{ auditd} ├─bash───go─┬─main───4*[{ main}] │ └─7*[{ go