Unix/Linux中的进程状态
ps 命令用来显示系统瞬间的进程信息,它可以显示出在用户输入ps命令时系统的进程及进程的相关信息。
格式: ps [参数]
-l:长格式输出
-u:按用户名和启动时间的顺序来显示进程
-j:用任务格式来显示进程
-f:用树形格式来显示进程
-a:显示所有用户的所有进程(包括其它用户)
-x:显示无控制终端的进程
-r:显示运行中的进程
top 命令是动态监视系统任务的工具,输出结果是连续的
格式:top [参数]
-b:以批量模式运行,但不能接受命令行输入
-c:显示命令行,而不仅仅是命令名
-d N:显示两次刷新时间的间隔,比如-d 5,表示两次刷新间隔为5秒
-i:禁止显示空闲进程戓僵尸进程
-n NUM:显示更新次数,然后退出。比如-n 5,表示top更新5次数据就退出
-p PID:仅监视指定进程的D;PID是一个数值
-q:不经任何延时就刷新
-s:安全模式运行,禁用一些效互指令
-S:累积模式,输出每个进程的总的CPU时间
kill 命令用于向某个进程(通过PID标识)传送一个信号,它通常与ps和jobs命令一起使用
格式:kill -signal PID,常用的signal参数如下:
1:SIGHUP,启动被终止的进程
2:SIGINT,相当于输入Ctrl+C,中断一个程序的进行
9:SIGKILL,强制中断一个进程进行
15:SIGTERM,以正常的结束进程方式来终止进程
17:SIGSTOP,相当于输入Ctrl+Z,暂停一个进程的运行
kill -SIGTERM %1
以正常的结束进程方式来终止第一个后台工作进程
kill -SIGHUP PID
重新启动进程ID为PID的进程
killall 命令使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程
使用kill命令可以杀死指定进程为PID的进程,如果要根据进程名称找到需要杀死的进程,还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一
killall [参数] <正在运行的进程名>
-e:对长名称进行精确匹配
-I
:忽略大小写的不同
-p:杀死进程所属的进程组
-i:交互式杀死进程,杀死进程前需要进行确认
-l
:打印所有已知信号列表
-p:如果没有进程被杀死,则不输出任何信息
-r:使用正规表达式匹配要杀死的进程名称
-s:用指定的进程号代替默认信号“SIGTERM”
-u:杀死指定用户的进程
nice命令允许在默认优先级的基础上进行增大或减小的方式来运行命令
格式:nice [参数] <command [arguments…]>
command是系统中任意可执行文件的名称
-n, --adjustment指定程序运行优先级的调整值
优先级的调整值范围为-20~19,其中数值越小优先级越高,数值越大优先级越低
若nice命令未指定优先级的调整值,则以缺省值10来调整程序运行优先级,即在命令通常运行优先级基础之上增加10
nice -n -5 myprogram& 在后台以通常运行优先级-5的优先级运行myprogram
renice命令用于改变一个正在运行的进程的nice值
格式:renice [参数] <pid>
-n:指定程序运行优先级的调整值
renice -5 777 将正在运行的PID为777的进程nice值改为-5
在后台运行程序的&命令
cp -r /usr/* test & 将/usr目录下的所有子目录及文件复制到/root/test目录下的工作放到后台运行
进程的中止(挂起)和终止
挂起(Ctrl+Z)
终止(Ctrl+C)
进程的恢复
恢复到前台继续运行(fg)fg [n]
恢复到后台继续运行(bg)bg [n]
查看被挂起的进程(jobs)