插件窝 干货文章 linux中的进程一般分为哪三类

linux中的进程一般分为哪三类

进程 终端 运行 系统 791    来源:    2025-05-03

在Linux系统中,进程通常根据其运行方式和特性分为以下三类:


1. 交互式进程(Interactive Processes)

  • 特点:由用户通过终端(Shell)启动,需要与用户进行交互(如输入/输出)。
  • 示例:文本编辑器(vimnano)、终端命令(lsgrep)、图形界面程序(如firefox)。
  • 行为:这类进程会占用终端,直到执行完成或被终止。如果终端关闭,进程通常会被终止(除非设置为后台或脱机运行)。

2. 批处理进程(Batch Processes / Non-interactive Processes)

  • 特点
    • 在后台自动运行,无需用户交互。
    • 通常由脚本或任务调度工具(如cronat)触发。
  • 示例:系统日志轮转(logrotate)、备份脚本、编译任务(如make)。
  • 行为:不关联终端,运行时无用户界面,优先级通常较低(可通过nice调整)。

3. 守护进程(Daemon Processes)

  • 特点
    • 系统后台服务进程,通常在系统启动时由init(如systemd)启动。
    • 独立于终端,长期运行,提供系统或网络服务。
  • 示例sshd(SSH服务)、httpd(Web服务)、systemd(初始化系统)。
  • 行为
    • 名称通常以d结尾(如cronsyslogd)。
    • 通过fork()setsid()脱离终端,成为独立的进程组。

补充说明

  • 僵尸进程(Zombie):子进程结束后,父进程未回收其资源,此时进程状态为Z(严格来说不属于运行中的进程分类)。
  • 孤儿进程(Orphan):父进程终止后,由init/systemd接管的后台进程。

分类依据

  • 交互性:是否需要用户输入。
  • 运行方式:前台/后台、是否长期驻留。
  • 启动来源:用户手动启动、系统自动调度或服务管理。

通过ps auxtop命令可以查看进程状态,其中STAT列会显示进程状态标志(如S休眠、D不可中断、R运行中等)。