现在的位置: 首页 > 综合 > 正文

《Linux Shell脚本攻略》 笔记 第九章:进程管理

2016年02月22日 ⁄ 综合 ⁄ 共 3527字 ⁄ 字号 评论关闭
《Linux Shell脚本攻略》 笔记
第九章:进程管理

1、打印进程
[root@localhost program_test]# ps -e | head
  PID TTY          TIME CMD
    1 ?        00:00:03 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 migration/0
    4 ?        00:00:00 ksoftirqd/0
    5 ?        00:00:00 migration/0
    6 ?        00:00:00 watchdog/0
    7 ?        00:00:00 events/0
    8 ?        00:00:00 cgroup
    9 ?        00:00:00 khelper

2、top 占用CPU最多的进程列表

[root@localhost program_test]# top

top - 23:45:17 up  1:12,  5 users,  load average: 0.00, 0.00, 0.00
Tasks: 153 total,   1 running, 143 sleeping,   9 stopped,   0 zombie
Cpu(s):  0.3%us,  0.3%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.3%hi,  0.0%si,  0.0%st
Mem:   1030528k total,   377184k used,   653344k free,    32588k buffers
Swap:  2064376k total,        0k used,  2064376k free,   170968k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                  
4429 root      20   0  2704 1140  880 R  0.7  0.1   0:00.12 top                                                                                                      
   21 root      20   0     0    0    0 S  0.3  0.0   0:01.63 ata_sff/0                                                                                                
2462 yy       20   0 73100  23m  18m S  0.3  2.3   0:12.11 vmtoolsd                                                                                                 
    1 root      20   0  2900 1436 1212 S  0.0  0.1   0:03.10 init      

3、列出占CPU最多的进程
[root@localhost program_test]# ps -eo comm,pcpu --sort -pcpu | head
COMMAND         %CPU
Xorg             0.5
vmtoolsd         0.2
vmtoolsd         0.2
init             0.0
kthreadd         0.0
migration/0      0.0
ksoftirqd/0      0.0
migration/0      0.0
watchdog/0       0.0
4、打印出bash进度对应的pid
[root@localhost program_test]# ps -C bash -o pid=
2624
2650
2696
2732
2759
3842
[root@localhost program_test]# ps -aux | grep bash | awk 'BEGIN { FS=" " }  $11=="bash" { print $2 }'
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
2624
2650
2759
5、列举出用的信号:
[root@localhost program_test]# 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
16) SIGSTKFLT   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  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
6、常用信号
1)SIGHUP 1 --对控制进程和终端进行挂起检测;
2)SIGINT  2--按下Ctrl+C发送信号
3)SIGKILL 9-- 强杀进程
4)SIGTERM 15--默认用于终止进程
5)SIGTSTP 20--按下Ctrl+Z发送信号
7、通过进程名杀死进程
[yy@localhost ~]$ killall -9 su
su: no process killed
8、捕获并响应信号测试 trap
[root@localhost ~]$ cat singlehandle.sh | sed '/^$/d'
#!/bin/bash
function handler()
{
        echo Hey, received signal : SIGINT
}
echo My Process ID is $$
trap 'handler' SIGINT
while true;
do 
sleep 1
done

9、
whereis   //不仅返回命令的路径,还打印出对应命令手册的位置
file         //确定文件类型
10、
//获取分区信息
[yy@localhost ~]$ cat /proc/partitions 
major minor  #blocks  name

   8        0   20971520 sda
   8        1     307200 sda1
   8        2   18598912 sda2
   8        3    2064384 sda3

作者:铭毅天下

转载请标明出处,原文地址:http://blog.csdn.net/laoyang360/article/details/42364921

如果感觉本文对您有帮助,请点击支持一下,您的支持是我坚持写作最大的动力,谢谢!

抱歉!评论已关闭.