【小蜗牛闲情之作
 
我经常使用一个服务程序,在Linux下运行,ps可以看到有多个进程,但是在Solaris下只看到一个进程。这个可能是Solaris和Linux的进程模型差异引起的。
 
如果在Linux下,杀死多个同名进程可以用“killall [signal] 进程名” 的方式来杀死指定名字的程序,但是在Solaris下killall的使用方式不一样,无法像Linux那样轻松做到,可以用以下shell脚本来实现:
 
杀死多个名为my_server的进程:
PIDS=`ps -ef | grep my_server | grep -v grep | awk '{print $2}'`
for pid in $PIDS
do
  kill -9 $pid
done
 
"grep -v grep" 这一步是是过滤 "grep my_server" 命令自身在 "ps -ef" 里的输出,最后输出给 awk 的才是我们想要的进程信息。
 
这个“组合命令”功能很实用,但是也得注意,可以一步步检验输出结果是否正确,最后才决定要不要 kill 掉他们,否则杀错程序有可能导致非常严重的后果哦。
 
想知道系统支持那些信号,可以:
[root@pps ~]# 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
63) SIGRTMAX-1  64) SIGRTMAX
------------------------------------------------------------------------------------------
赵小蜗牛
QQ: 755721501
E-mail: 
在不断奉献中谋求生存发展、打造自己的优秀品质,用人性最本质最动人的一面“营销”自己!