2.4 任务4 熟练使用进程管理类命令
进程管理类命令是对进程进行各种显示和设置的命令。
1.使用ps命令
ps命令主要用于查看系统的进程。该命令的语法为:
ps [参数]
ps命令的常用参数选项如下。
•-a:显示当前控制终端的进程(包含其他用户的)。
•-u:显示进程的用户名和启动时间等信息。
•-w:宽行输出,不截取输出中的命令行。
•-l:按长格形式显示输出。
•-x:显示没有控制终端的进程。
•-e:显示所有的进程。
•-tn:显示第n个终端的进程。
例如:
[root@RHEL6 dir1]# ps -au USER PID % CPU % MEM VSZ RSS TTY STAT START TIME COMMAND root 2459 0.0 0.2 1956 348 tty2 Ss+ 09:00 0:00 /sbin/mingetty tty2 root 2460 0.0 0.2 2260 348 tty3 Ss+ 09:00 0:00 /sbin/mingetty tty3 root 2461 0.0 0.2 3420 348 tty4 Ss+ 09:00 0:00 /sbin/mingetty tty4 root 2462 0.0 0.2 3428 348 tty5 Ss+ 09:00 0:00 /sbin/mingetty tty5 root 2463 0.0 0.2 2028 348 tty6 Ss+ 09:00 0:00 /sbin/mingetty tty6 root 2895 0.0 0.9 64721180 tty1 Ss 09:09 0:00 bash
提示:ps通常和重定向、管道等命令一起使用,用于查找出所需的进程。
2.使用kill命令
前台进程在运行时,可以用Ctrl+C组合键来终止它,但后台进程无法使用这种方法终止,此时可以使用kill命令向进程发送强制终止信号,以达到目的,例如:
[root@RHEL6 dir1]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 (略)
上述命令用于显示kill命令所能够发送的信号种类。每个信号都有一个数值对应,例如SIGKILL信号的值为9。
kill命令的格式为:
kill [参数] 进程1 进程2 …
参数选项-s一般跟信号的类型。
例如:
[root@RHEL6 dir1]# ps PID TTY TIME CMD 1448 pts/1 00:00:00 bash 2394 pts/1 00:00:00 ps [root@RHEL6 dir1]# kill -s SIGKILL 2394 或者//kill -92394 //上述命令用于结束ps进程
3.使用killall命令
和kill命令相似,killall命令可以根据进程名发送信号,例如:
[root@RHEL6 dir1]# killall -9 httpd
4.使用nice命令
Linux系统有两个和进程有关的优先级。用“ps-l”命令可以看到两个域:PRI和NI。PRI是进程实际的优先级,它是由操作系统动态计算的,这个优先级的计算和NI值有关。NI值可以被用户更改,NI值越高,优先级越低。一般用户只能加大NI值,只有超级用户才可以减小NI值。NI值被改变后,会影响PRI。优先级高的进程被优先运行,缺省时进程的NI值为0。nice命令的用法如下:
nice -n 程序名 //以指定的优先级运行程序
其中,n表示NI值,正值代表NI值增加,负值代表NI值减小。
例如:
[root@RHEL6 dir1]# nice --2 ps -l
5.使用renice命令
renice命令是根据进程的进程号来改变进程的优先级的。renice的用法如下:
renice n 进程号
其中,n为修改后的NI值。
例如:
[root@RHEL6 dir1]# ps -l F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 0 S 0 3324 3322 0 80 0-27115 wait pts/0 00:00:00 bash 4 R 0 4663 3324 0 80 0-27032- pts/0 00:00:00 ps [root@RHEL6 dir1]# renice -63324
6.使用top命令
和ps命令不同,top命令可以实时监控进程的状况。top屏幕自动每5秒钟刷新一次,也可以用“top-d 20”,使得top屏幕每20秒刷新一次。top屏幕的部分内容如下:
top-19:47:03 up 10:50, 3 users, load average: 0.10, 0.07, 0.02 Tasks: 90 total, 1 running, 89 sleeping, 0 stopped, 0 zombie Cpu(s): 1.0% us, 3.1% sy, 0.0% ni, 95.8% id, 0.0% wa, 0.0% hi, 1.0% si Mem: 126212k total, 124520k used, 1692k free, 10116k buffers Swap: 257032k total, 25796k used, 231236k free, 34312k cached PID USER PR NI VIRT RES SHR S % CPU % MEM TIME+ COMMAND 2946 root 14 -1 39812 12m 3504 S 1.3 9.8 14:25.46 X 3067 root 25 10 39744 14m 9172 S 1.0 11.8 10:58.34 rhn-applet-gui 2449 root 16 0 6156 33281460 S 0.3 3.6 0:20.26 hald 3086 root 15 0 23412 75766252 S 0.3 6.0 0:18.88 mixer_applet2 1446 root 16 0 8728 25082064 S 0.3 2.0 0:10.04 sshd 2455 root 16 0 2908 948 756 R 0.3 0.8 0:00.06 top 1 root 16 0 2004 560 480 S 0.0 0.4 0:02.01 init
top命令前5行的含义如下。
第1行:正常运行时间行。显示系统当前时间、系统已经正常运行的时间、系统当前用户数等。
第2行:进程统计数。显示当前的进程总数、睡眠的进程数、正在运行的进程数、暂停的进程数、僵死的进程数。
第3行:CPU统计行。包括用户进程、系统进程、修改过NI值的进程、空闲进程各自使用CPU的百分比。
第4行:内存统计行。包括内存总量、已用内存、空闲内存、共享内存、缓冲区的内存总量。
第5行:交换分区和缓冲分区统计行。包括交换分区总量、已使用的交换分区、空闲交换分区、高速缓冲区总量。
在top屏幕下,用q键可以退出,用h键可以显示top下的帮助信息。
7.使用bg、jobs、fg命令
bg命令用于把进程放到后台运行,例如:
[root@RHEL6 dir1]# bg find
jobs命令用于查看在后台运行的进程,例如:
[root@RHEL6 dir1]# find / -name aaa & [1] 2469 [root@RHEL6 dir1]# jobs [1]+ Running find / -name aaa &
fg命令用于把从后台运行的进程调到前台,例如:
[root@RHEL6 dir1]# fg find