温馨提示×

什么是linux守护进程

小樊
34
2026-09-03 11:21:01
栏目: 智能运维

Linux 守护进程(Daemon) 是指在后台运行、不与用户直接交互、通常用于提供某种系统服务或功能的进程。

下面从几个角度来解释:


一、什么是守护进程

  • 守护进程是一种 常驻内存的后台进程
  • 它通常在系统启动时启动,在系统关闭时终止
  • 不依赖终端(Terminal),即使用户退出登录,它仍然运行
  • 名字常以 d 结尾,例如:
    • sshd(SSH 服务)
    • httpd / nginx(Web 服务)
    • crond(定时任务)
    • mysqld(MySQL 服务)

二、守护进程的特点

  1. 脱离终端控制
    • 不属于任何用户终端
    • 不受用户 logout 影响
  2. 在后台运行
    • 不占用前台界面
  3. 生命周期长
    • 通常随系统启动而启动
  4. 由系统或 init 进程管理
    • 传统:init(SysV)
    • 现代:systemd

三、守护进程与普通进程的区别

对比项 普通进程 守护进程
是否前台运行
是否依赖终端
用户退出是否结束 可能结束 不结束
用途 临时任务 系统服务

四、守护进程如何创建(原理简述)

在 C 语言中创建守护进程通常包括:

  1. fork() 创建子进程
  2. 父进程退出
  3. 调用 setsid() 创建新会话
  4. 改变工作目录(如 /
  5. 重设文件权限掩码
  6. 关闭标准输入/输出/错误

五、如何查看守护进程

ps -ef
ps aux

通常以 ? 表示无控制终端(TTY 为 ?


六、现代 Linux 中的守护进程

现在大多由 systemd 管理:

systemctl status sshd
systemctl start nginx
systemctl enable mysqld

如果你愿意,我也可以:

  • 写一个 C 语言守护进程示例
  • 教你用 systemd 创建自己的守护进程
  • 对比 守护进程 vs 服务 vs 后台进程

你想了解哪一部分?

0