linux 进程管理
Posted suffergtf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 进程管理相关的知识,希望对你有一定的参考价值。
一、工作管理
- 将命令放到后台执行 “&”
[[email protected] ~]# for n in `seq 10000`;do echo $n>>/tmp/test.txt;done & ###在命令的后面接 & 将命令放到后台执行 [1] 1446 ######[1] job number;1146 PID值 [[email protected] ~]# pwd /root [1]+ Done for n in `seq 10000`; #####[1]+ Done表示已经完成 do echo $n >> /tmp/test.txt; done
- 将命令放到后台暂停: [ctrl] +z
[[email protected] ~]# echo ‘for n in `seq 100000`;do echo $n>>/tmp/test.txt;sleep 1;done‘ >/tmp/test.sh ####写一个简单的打印序列的脚本
[[email protected] ~]# echo ‘for n in `seq 100000`;do echo $n>>/tmp/test.txt;sleep 1;done‘ >/tmp/test1.sh
[[email protected] ~]# echo ‘for n in `seq 100000`;do echo $n>>/tmp/test.txt;sleep 1;done‘ >/tmp/test2.sh
[[email protected] ~]# /bin/sh /tmp/test.sh ####### ctrl+z组合键将脚本放到后台暂停
^Z
[1]+ Stopped /bin/sh /tmp/test.sh
[[email protected] ~]# /bin/sh /tmp/test1.sh
^Z
[2]+ Stopped /bin/sh /tmp/test1.sh
[[email protected] ~]# /bin/sh /tmp/test2.sh
^Z
[3]+ Stopped /bin/sh /tmp/test2.sh
[[email protected] ~]# jobs -l ######jobs查看后台暂停、运行的程序
[1] 4956 停止 /bin/sh /tmp/test.sh
[2]- 4966 停止 /bin/sh /tmp/test1.sh
[3]+ 4977 停止 /bin/sh /tmp/test2.sh
####### +表示最近的一次放到后台的程序,-表示最近倒数第二次放到后台的程序
- 将后台运行的工作拿到前台 fg
[[email protected] ~]# fg %1 #### %1 表示job number为1的放到前端处理,%可以省略 /bin/sh /tmp/test.sh
^Z
[1]+ Stopped /bin/sh /tmp/test.sh
[[email protected] ~]# jobs -l
[1]+ 4956 停止 /bin/sh /tmp/test.sh #####重新将/tmp/test.sh放到后台暂停,可以看到job number后面右面有个+号,因为他是最近一次放到后台的程序
[2] 4966 停止 /bin/sh /tmp/test1.sh
[3]- 4977 停止 /bin/sh /tmp/test2.sh
[[email protected] ~]# fg ########不带参数,表示直接将带有+号标志的程序,放到前端执行
/bin/sh /tmp/test.sh
- 让程序在后台运行 bg
[[email protected] ~]# jobs -l [1] 4956 停止 /bin/sh /tmp/test.sh [2]- 5888 停止 /bin/sh /tmp/test1.sh [3]+ 5898 停止 /bin/sh /tmp/test2.sh [[email protected] ~]# bg %1 [1] /bin/sh /tmp/test.sh & #####先将job number为1的任务调到前端,然后使用&放到后台执行 [[email protected] ~]# jobs -l [1] 4956 Running /bin/sh /tmp/test.sh & [2]- 5888 停止 /bin/sh /tmp/test1.sh [3]+ 5898 停止 /bin/sh /tmp/test2.sh
二、程序管理
- 查看正在运行的进程
1、PS,静态查询
[[email protected] ~]# ps aux ######查看系统所有的程序数据,静态(某一时间的状态) USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 19232 1508 ? Ss 12:00 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S 12:00 0:00 [kthreadd] ........省略.......
####################注释######################
- USER:该process属于那个使用者
- PID:该process的程序识别码
- %CPU:该process占用CPU的百分比
- %MEM:该process占用的实体内存的百分比
- VSZ:该process使用掉的虚拟内存量
- RSS:该process占用的固定的内存量
- TTY:该process在那个终端上运行
- STAT:该process目前的状态,,(与PS -L的S旗帜相同)
- START:该process被触发启动的时间
- TIME:该process实际使用CPU运行的时间
- COMMAND:该process的实际命令
-----------------------------------split-------------------------------------------
[[email protected] ~]# ps -l ####查看当前shell,运行的相关程序数据
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1576 1574 0 80 0 - 29568 wait pts/1 00:00:07 bash
0 S 0 4956 1576 0 80 0 - 29013 wait pts/1 00:00:00 sh
0 T 0 5888 1576 0 80 0 - 29013 signal pts/1 00:00:00 sh
######################注释################
- F:代表这个程序的标识(process flags),若为4,标识此程序的权限为root,1标识此子程序只进行复制(fork)而没有实际运行
- S:表示这个程序的状态。R(Running):该程序正在运行;S(Sleep):该程序正在睡眠状态(idle);D:不可被唤醒的睡眠状态,通常因为该程序在等待I/O;T:停止状态,可能为后台暂停或排错(traced)状态;Z(Zombie)僵尸进程,程序已经种终止,但是无法移除到内存外
- UID/PID/PPID:运行该程序的用户的UID,改程序的PID号,该程序的父进程PPTD
- C:代表CPU的使用率
- PRI/NI:Priority/Nice的缩写,代表此程序被CPU运行的优先顺序,数值一笑代表越快被CPU运行
- ADDR/SZ/WCHAN:与内存相关,ADDR是kernel function,止除该程序在内存的那个部分,如果是个running的程序,一般会显示[-];SZ代表此程序用掉多少内存;WCHAN表示目前是否在运行,-表示运行
- TTY:登陆方式
- TIME:使用掉的cpu时间,指程序实际花费CPU运行的时间
- CMD:command的缩写,造成此程序的触发程序的命令
2、top,动态查询
[[email protected] ~]# top top - 17:07:12 up 5:06, 1 user, load average: 0.02, 0.01, 0.00 Tasks: 82 total, 1 running, 77 sleeping, 4 stopped, 0 zombie Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.4%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1534840k total, 420116k used, 1114724k free, 51580k buffers Swap: 1048568k total, 0k used, 1048568k free, 215324k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19232 1508 1220 S 0.0 0.1 0:01.19 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd ...............省略.......................
以上是关于linux 进程管理的主要内容,如果未能解决你的问题,请参考以下文章