一·故事背景
本次内容是相对比较简单的一次,只需要了解并且记忆命令
二·进程查看命令
1·pstree
用于查看进程树之间的关系,谁是父进程,谁是子进程,可以清楚的看出来是谁创建了谁
用法:
pstree [选项]
选项 | 描述 |
---|---|
-A | 各进程树之间的连接以ASCII码字符来连接 |
-U | :各进程树之间的连接以utf8字符来连接,某些终端可能会有错误 |
-p | 同时列出每个进程的PID |
-u | 同时列出每个进程的所属账号名称 |
2·ps
显示系统当前进程瞬间运行状态
ps [选项]
选项 | 描述 |
---|---|
-A | 所有的进程均显示出来,与 -e 具有同样的效用 |
-a | 显示现行终端机下的所有进程,包括其他用户的进程 |
-u | 以用户为主的进程状态 |
-x | 通常与 a 这个参数一起使用,可列出较完整信息 |
-l | 较长、较详细的将该PID 的的信息列出 |
查看进程状态
ps aux
名称 | 含义 |
| 进程的所有者 |
PID | 进程的 ID |
%CPU | 进程占用的 CPU 百分比 |
%MEM | 进程占用的内存百分比 |
VSZ | 进程使用的虚拟内存大小 |
RSS | 进程使用的物理内存大小 |
TTY | 进程所在的终端 |
STAT | 进程的状态,如S (休眠)、R (运行)、Z (僵尸进程)等 |
START | 进程的启动时间 |
TIME | 进程运行的时间 |
COMMAND | 启动进程的命令 |
进程状态
名称 | 描述 |
S | 休眠 |
s | 父进程 |
R | 运行 |
Z | 僵尸进程(前台程序已死,但后台驻留进程没有正常退出;后果就是占用资源不干活。) |
D | 等待硬件I/O,不能被信号唤醒 |
T | 暂停 |
X | 进程完全禁止 |
I(大写i) | 空闲状态 |
< | 优先级较高 |
N | 优先级较低 |
l(小写L) | 进程多线程 |
+ | 进程是前台进程组 |
ps -efj(显示进程父子关系)
选项 | 描述 |
-e | 显示所有进程 |
-l | 长格式输出 |
-f | 完整格式输出 |
3·pgrep
查看进程的信息,包括进程是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。 pgrep通过匹配其程序名,找到匹配的进程
pgrep [选项] pidname
名称 | 描述 |
---|---|
-l | 同时显示进程名和PID |
-o | 当匹配多个同一命令启动的进程时,显示进程号最小的那个 |
-n | 当匹配多个同一命令启动的进程时,显示进程号最大的那个 |
4·top、htop
top:动态监控系统处理器状态,htop姑且称之为top的增强版
htop默认未安装
yum install epel-release -y #安装epel源
yum install htop -y #安装htop
常用选项
-
-d
:指定更新的间隔时间,以秒为单位。 -
-n
:指定更新的次数。 -
-p
:监控指定进程的 ID。 -
-u
:监控指定用户的进程。
常用按键
-
空格键:立即刷新显示。
-
M:按照内存使用百分比对进程进行排序。
-
P:按照 CPU 使用百分比对进程进行排序。
-
T:按照进程运行时间对进程进行排序。
-
q:退出 top 命令。
-
h:显示帮助信息。
三·进程管理命令
1·kill
kill [选项] pid
选项 | 描述 |
---|---|
-l | 列出所有信号参数 |
-a | 当处理当前进程时,不限制命令名和进程号的对应关系 |
-u | 指定用户 |
-p | 指定kill 命令只打印相关进程的进程号,而不发送任何信号 |
-s | 发送指定的信号 |
-9 | 强制杀死 |
-0(数字零) | 用来检测一个进程是否存在。 |
信号名称 | 作用 |
---|---|
SIGHUP | 终端挂起或者控制进程结束时发出的信号,通常用于通知守护进程重新读取配置文件等。 |
SIGINT | 键盘中断信号,通常由用户按下 Ctrl+C 产生,用于终止正在运行的程序。 |
SIGQUIT | 键盘退出信号,通常由用户按下 Ctrl+\ 产生,用于使程序异常退出并产生核心转储文件(如果可能)。 |
SIGILL | 非法指令信号,表示程序执行了一条非法的机器指令。 |
SIGTRAP | 跟踪陷阱信号,用于调试程序,通常由断点触发。 |
SIGABRT | 异常终止信号,通常由程序内部的 abort 函数调用产生。 |
SIGBUS | 总线错误信号,通常表示访问内存时出现了总线错误。 |
SIGFPE | 浮点运算异常信号,例如除以零等浮点运算错误。 |
SIGKILL | 强制终止信号,无法被捕获或忽略,用于立即终止进程。 |
SIGUSR1 | 用户自定义信号 1,留给用户程序自定义用途。 |
SIGSEGV | 内存访问越界信号,通常表示程序尝试访问非法的内存地址。 |
SIGUSR2 | 用户自定义信号 2,留给用户程序自定义用途。 |
SIGPIPE | 管道破裂信号,当进程向一个没有读端的管道写入数据时产生。 |
SIGALRM | 闹钟信号,通常由 alarm 函数设置的定时器超时产生。 |
SIGTERM | 终止信号,是 kill 命令默认发送的信号,用于请求程序正常终止。 |
SIGSTKFLT | 协处理器栈错误信号,在某些特定架构的系统上使用。 |
SIGCHLD | 子进程状态改变信号,当子进程终止、暂停或继续运行时,父进程会收到此信号。 |
SIGCONT | 继续执行信号,用于使暂停的进程继续运行。 |
SIGSTOP | 暂停进程信号,无法被捕获或忽略,用于暂停进程的执行。 |
SIGTSTP | 终端停止信号,通常由用户按下 Ctrl+Z 产生,用于暂停前台进程的运行。 |
SIGTTIN | 后台进程从控制终端读取数据时收到的信号。 |
SIGTTOU | 后台进程向控制终端写入数据时收到的信号。 |
SIGURG | 紧急数据到达信号,通常用于网络编程中表示有紧急数据需要处理。 |
SIGXCPU | 超过 CPU 时间限制信号,表示进程超过了设定的 CPU 使用时间限制。 |
SIGXFSZ | 超过文件大小限制信号,表示进程试图扩大文件超过了系统限制。 |
SIGVTALRM | 虚拟定时器信号,用于在虚拟时间内设置定时器超时。 |
SIGPROF | 性能分析定时器信号,用于性能分析工具。 |
SIGWINCH | 窗口大小改变信号,当终端窗口大小发生改变时产生。 |
SIGIO | 异步 I/O 信号,表示异步 I/O 事件发生。 |
SIGPWR | 电源故障信号,在某些系统上表示电源状态发生变化。 |
SIGSYS | 系统调用错误信号,表示进程执行了一个无效的系统调用。 |
SIGRTMIN | 实时信号的最小值。 |
35 - 64 | SIGRTMIN+1 至 SIGRTMAX 是一系列的实时信号,用于实时应用程序中的优先级信号传递等 |
2·pkill与killall
pkill是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差不多,也是直接杀死运行中的程序,如果想杀掉单个进程,请用kill来杀掉。
pkill/killall [选项] 进程名
四·进程类型
1·前台进程
在终端界面运行的进程,运行前台进程后,终端无法操作
#注意:该运行前台进程的方式,当终端关闭时,进程也会随着关闭
nohup firefox & #关闭终端,进程不掉
#查看
jobs
#将进程调到前台运行
fg 1
#将正在运行的前台进程放到后台运行
ctrl + z
bg 1
2·后台进程
驻留在后端运行的进程
五·总结
进程管理内容较少,整体比较简单,学会使用日常使用的多的命令即可,背诵起来比较轻松。