引言¶
程序(Program),通常为二进制可执行文件,一般存储在物理磁盘中,被用户触发执行后,它就从磁盘上的二进制文件,变成了计算机内存中的数据、寄存器里的值、堆栈中的指令、被打开的文件,以及各种设备的状态信息的一个集合,即进程(Process)。
为了管理这个进程,操作系统会根据触发这个进程的用户与相关属性关系,给予这个进程一组有效的权限,以及进程所需要的脚本或数据,最后再给予一个PID,操作系统通过PID来判断该进程是否有执行权限。
查看进程¶
静态¶
# ps is process status
ps aux # BSD风格(显示会截断)
ps -ef # System V风格,标准格式
'
-e 显示所有进程,包括与终端无关的进程,也可以用:-A
-a 只显示与终端有关的所有进程
-u 显示所有与用户相关的进程,可以指定用户
-x 显示没有控制终端的进程,通常是后台进程或守护进程
-f 显示进程的详细信息
-l 显示长格式信息
-L 显示线程
UID PID PPID C STIME TTY TIME CMD
root 67583 67562 0 10:12 pts/1 00:00:00 -bash
root 67594 67583 0 10:12 pts/1 00:00:00 ps -f
'
动态¶
top
第1行 包含以下内容(也可以使用 uptime 单独查看))
最近一次开机时长
当前登了几个用户
平均负载(满负载为1):1min,5min,15min,递增说明负载降低,递减说明系统越来越繁忙
第2行 任务统计
第3行 CPU状态:默认显示多个CPU的平均值,按1可单独显示
第4行 内存
第5行 交换分区(虚拟内存)
输入?号查看按键提示
默认每3s更新一次,按s可以自定义间隔时间
其他命令¶
一台 Linux 机器上的进程总数目是有限制的。如果超过这个最大值,那么系统就无法创建出新的进程了
# 查看最大进程数
/proc/sys/kernel/pid_max # 4194304kb
进程的优先级(PRI)由系统内核动态调整,用户可以通过nice值来影响它
PRI(new) = PRI(old) + nice(-20~19)
PRI越小优先级越高,非root用户nice可控范围在0~19,即只有调低优先级的权限
nice [-n num] command # 进程运行前设置
renice [num] PID # 进程运行中设置
进程组 process group¶
进程组是一组相关联的进程的集合,通常由同一进程启动,并由进程组ID(PGID)进行标识。一个进程组也可以包含多个进程,一个进程可以属于多个进程组
进程退出码¶
任何进程在退出时都对应一个退出码,如果为0则表示成功或正常状态,非0则表示失败或异常状态
Shell 批处理时就是根据退出码来判断的
最后更新:
2023-05-21