Linux_基础_进程管理
显示进程
ps:显示系统执行的进程
语法: ps <选项> <参数> 选项: -a # 显示所有终端机下执行的程序,除了阶段作业领导者之外。 a # 显示现行终端机下的所有程序,包括其他用户的程序。 -A # 显示所有程序。 -c # 显示CLS和PRI栏位。 c # 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。 -C<指令名称> # 指定执行指令的名称,并列出该指令的程序的状况。 -d # 显示所有程序,但不包括阶段作业领导者的程序。 -e # 此选项的效果和指定"A"选项相同。 e # 列出程序时,显示每个程序所使用的环境变量。 -f # 显示UID,PPIP,C与STIME栏位。 f # 用ASCII字符显示树状结构,表达程序间的相互关系。 -g<群组名称> # 此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。 g # 显示现行终端机下的所有程序,包括群组领导者的程序。 -G<群组识别码> # 列出属于该群组的程序的状况,也可使用群组名称来指定。 h # 不显示标题列。 -H # 显示树状结构,表示程序间的相互关系。 -j或j # 采用工作控制的格式显示程序状况。 -l或l # 采用详细的格式来显示程序状况。 L # 列出栏位的相关信息。 -m或m # 显示所有的执行绪。 n # 以数字来表示USER和WCHAN栏位。 -N # 显示所有的程序,除了执行ps指令终端机下的程序之外。 -p<程序识别码> # 指定程序识别码,并列出该程序的状况。 p<程序识别码> # 此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。 r # 只列出现行终端机正在执行中的程序。 -s<阶段作业> # 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。 s # 采用程序信号的格式显示程序状况。 S # 列出程序时,包括已中断的子程序资料。 -t<终端机编号> # 指定终端机编号,并列出属于该终端机的程序的状况。 t<终端机编号> # 此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。 -T # 显示现行终端机下的所有程序。 -u<用户识别码> # 此选项的效果和指定"-U"选项相同。 u # 以用户为主的格式来显示程序状况。 -U<用户识别码> # 列出属于该用户的程序的状况,也可使用用户名称来指定。 U<用户名称> # 列出属于该用户的程序的状况。 v # 采用虚拟内存的格式显示程序状况。 -w或w # 采用宽阔的格式来显示程序状况。 x # 显示所有程序,不以终端机来区分。 X # 采用旧式的Linux i386登陆格式显示程序状况。 -y # 配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。 --cols<每列字符数> # 设置每列的最大字符数。 --headers # 重复显示标题列。 --info # 显示排错信息。 --lines<显示列数> # 设置显示画面的列数。 实例: ps -u root # 显示root进程用户信息 ps -aux | grep sshd # 查询显示sshd的进程信息 ps -ef | more # 以全格式显示当前所有的进程,分页显示 进程列表说明: USER # 用户名 PID # 进程号 %CPU # 进程占用CPU的百分比 %MEM # 进程占用物理内存的百分比 VSZ # 进程占用的虚拟内存大小(单位:KB) RSS # 进程占用的物理内存大小(单位:KB) TTY # 终端名称 STAT # 进程状态(S:睡眠;s:该进程是回话的先导进程;N:低优先级的进程;<:高优先级的进程;R:正在运行;D:短期等待;Z:僵死进程;T:暂停执行...) START # 进程的启动时间 TIME # 进程使用CPU的总时间 COMMAND # 启动进程所用的命令和参数
pstree:以树状形式展示进程
语法: pstree <选项> 选项: -a # 显示每个程序的完整指令,包含路径,参数或是常驻服务的标示 -c # 不使用精简标示法 -G # 使用VT100终端机的列绘图字符 -h # 列出树状图时,特别标明现在执行的程序 -l # 采用长列格式显示树状图 -n # 用程序识别码排序。预设是以程序名称来排序 -p # 显示进程PID -u # 显示进程所属用户 -U # 使用UTF-8列绘图字符 参数: 进程名称 # 指定要杀死的进程名称。 实例: pstree -p # 显示当前所有进程的进程号和进程id
top:动态监控,动态显示系统执行的进程
语法: top <选项> <参数> 选项: -b # 以批处理模式操作 -c # 显示完整的治命令 -d # 屏幕刷新间隔时间 -I # 忽略失效过程 -s # 保密模式 -S # 累积模式 -i<时间> # 设置间隔时间 -u<用户名> # 指定用户名 -p<进程号> # 指定进程 -n<次数> # 循环显示的次数 实例: top # 显示进程信息 top -d 5 # 每5秒刷新一次进程信息 top -p 139 # 显示进程号为139的进程信息 top -n 10 # 显示更新10次后退出 进入top界面后的操作: c # 显示完整的命令名 d # 修改刷新时间 h # 显示帮助画面,给出一些简短的命令总结说明 k # 指定要杀死的进程 u # 显示指定用户相关进程 P # 按CPU使用排序 M # 按内存使用排序 F # 排序(进入新的界面,并选择排序的目标字段) R # 顺序或逆序 H # 显示线程 Z # 以多色彩显示top l/t/m # toggle/load/cpu/内存信息 1 # 显示多CPU的信息(多核机器上查看每个CPU的使用率) W # 保存当前top的配置 top说明: top - 11:52:15 up 6:14, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 347 total, 2 running, 345 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.3 us, 15.8 sy, 0.0 ni, 78.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1001336 total, 119236 free, 137632 used, 744468 buff/cache KiB Swap: 2097148 total, 2095644 free, 1504 used. 651196 avail Mem # 说明 top - 11:52:15 # 当前系统时间 6:14 # 运行时间 2 user # 当前登录用户数 load average: 0.00, 0.01, 0.05 # 系统负载均衡,(0.00+0.01+0.05)/3 > 0.7,大于0.7系统就会有点卡 Tasks: 347 total # 总进程数 2 running # 正在运行的进程数 345 sleeping # 睡眠的进程数 0 stopped # 停止的进程数 0 zombie # 僵死的进程数 %Cpu(s): 5.3 us # 用户空间占用CPU百分比 15.8 sy # 系统空间占用CPU百分比 0.0 ni # 用户进程空间内改变过优先级的进程占用CPU百分比 78.9 id # CPU处在空闲状态百分比 0.0 wa # IO等待所占用的CPU百分比 0.0 hi # 硬件中断占用CPU百分比 0.0 si # 软件中断占用CPU百分比 0.0 st # 丢失时间占用CPU百分比 KiB Mem : 1001336 total # 物理内存总量 119236 free # 空闲内存总量 137632 used # 使用的物理内存总量 KiB Swap: 2097148 total # 交换区总量 2095644 free # 空闲交换区总量 1504 used # 使用的交换区总量
终止进程
kill:使用进程ID杀死进程
语法: kill <选项> <参数> 选项: -a # 当处理当前进程时,不限制命令名和进程号的对应关系 -l <信息编号> # 若不加<信息编号>选项,则-l参数会列出全部的信息名称 -p # 指定kill 命令只打印相关进程的进程号,而不发送任何信号 -s <信息名称或编号> # 指定要送出的信息 -u # 指定用户 参数: 进程或作业识别号 # 指定要删除的进程或作业。 实例: kill -l # 列出所有信号名称 kill -KILL 1234 # 强制杀死进程ID为1234的进程 kill -9 1234 # 强制杀死进程ID为1234的进程 kill -u tom # 杀死指定用户所有进程 kill -9 $(ps -ef | grep tom) # 杀死指定用户所有进程 常用信号说明: HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) TERM 15 终止 KILL 9 强制终止 CONT 18 继续(与STOP相反, fg/bg命令) STOP 19 暂停(同 Ctrl + Z)
killall:使用进程名称杀死进程
语法: killall <选项> <参数> 选项: -e # 对长名称进行精确匹配 -l # 忽略大小写的不同 -p # 杀死进程所属的进程组 -i # 交互式杀死进程,杀死进程前需要进行确认 -l # 打印所有已知信号列表 -q # 如果没有进程被杀死。则不输出任何信息 -r # 使用正规表达式匹配要杀死的进程名称 -s # 用指定的进程号代替默认信号“SIGTERM” -u # 杀死指定用户的进程 参数: 进程名称 # 指定要杀死的进程名称 实例: killall vi # 杀死所有同名进程