1. 查看进程
ps -aux
ps -ajx
ps -aux 查看格式:
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|
root | 1 | 0.1 | 0.1 | 0 | 0 | ? | Ss | 3月26 | 1:22 | ./main |
STAT 参数意义:
D | 不可中断 Uninterruptible(usually IO |
---|
R | 正在运行,或在队列中的进程 | S(大写) | 处于休眠状态 | T | 停止或被追踪 | Z | 僵尸进程 | W | 进入内存交换(从内核2.6开始无效 | X | 死掉的进程 | < | 高优先级 | N | 低优先级 | s | 包含子进程 | + | 位于前台的进程组 |
2. 动态显示进程
top 实时显示进程动态
top -d 5 : 指定显示信息更新时间间隔为5秒
可按以下键对显示结果进行排序:
内存 | CPU | 运行时长 | 用户名筛选 | 输入PID杀死进程 |
---|
M | P | T | U | K |
3. 杀死进程
kill -l
kill [-signal] pid
kill -9 pid
kill -SIGKILL pid
killall name p_name
4. 进程号和相关函数
- 每个进程都由进程号来标识,其类型为 pid_t(整型),进程号的范围:0~32767。进程号总是唯一的,但可以重用。当一个进程终止后,其进程号就可以再次使用。
- 任何进程(除 init 进程)都是由另一个进程创建,该进程称为被创建进程的父进程,对应的进程号称为父进程号(PPID)。
- 进程组是一个或多个进程的集合。他们之间相互关联,进程组可以接收同一终端的各种信号,关联的进程有一个进程组号(PGID)。默认情况下,当前的进程号会当做当前的进程组号。
相关系统调用:
// 获取自身进程号
pid_t getpid(void);
// 获取父进程号
pid_t getppid(void);
// 获取进程组号
pid_t get pgid(pid_t pid);
|