linux 杀死进程自动化

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  改进9――pkill:

  看到pkill想到了什么?没错pgrep和kill!pkill=pgrep+kill。

  [plain] view plaincopy $pkill -9 firefox

  说明:”-9″ 即发送的信号是9,pkill与kill在这点的差别是:pkill的信号直接跟在 “-“ 后面,“-sxx”不是用来传递信号。之前我一直以为是 “-s 9″,结果每次运行都无法终止进程。

  改进10――killall:

  killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。

  [plain] view plaincopy $killall -9 firefox

  总结:

  1、

  1)kill传递给要终止的进程的信号,实际上是POSIX信号,它们在signal.h里面定义附录摘录了部分POSIX信号,及其相关说明。支持两种方式传递终止信号:

  [plain] view plaincopy (1)kill -s signal PID

  比如

  $ kill -s 9 1234

  (2)kill -signal PID

  $kill -9 1234

  2)kill传递的信号也支持两种表示方式:信号名和信号数:

  kill -s 9 1234 和kill -s KILL 1234 (SIGKILL)

  kill -15 1234 和kill -TERM 1234 (SIGTERM)

  当然其他信号也可以这样表示。

  2、

  上面各种改进方法,设计到的技巧,有两个在其他地方也有借鉴意义。

  1)、进程号的获取部分

  用awk提取第2列或者用cut提取第8-15个字母。其他地方也可一用awk提取第n列,或者用cut提取第m-第n哥字母。

  2)、进程号的传递

  用xargs把进程号传递给后面的kill做参数运行;

  直接用两个“`”(“~”下面那个后单引号)把命令放到对应参数的位置来传递参数。

  附录:各种信号及其用途

信号描述Linux x86[1]的信号数SIGABRT进程退出6SIGALRM计时器到时14SIGBUS总线错误,进入内存对象未定义部分7SIGCHLD子进程终止,停止或继续17SIGCONT继续,如果停止18SIGFPE浮点指针异常,错误的算数操作。8SIGHUP挂起1SIGILL非法指令4SIGINT中断2SIGKILL杀死(尽快终止)9SIGPIPE无读操作时写入管道。13SIGQUIT退出并转储核心3SIGSEGV段非法11SIGSTOP临时停止执行19SIGTERM终止(要求终止)15SIGTSTP由信号终止20SIGTTIN后台进程试图从TTY 读入 (“in”)21SIGTTOU后台进程试图写入TTY (“out”)22SIGUSR1用户定义110SIGUSR2用户定义212SIGPOLLPollable event29SIGPROF统计分布图用计时器到时27SIGSYS不良的系统调用31SIGTRAP跟踪/断点 陷阱5SIGURGI/O紧急信号,套接字紧急数据有效23SIGVTALRM虚拟定时器超时26SIGXCPU超出CPU时间限制24SIGXFSZ超出文件大小限制25

[1][2]

功夫不负有心人。

linux 杀死进程自动化

相关文章:

你感兴趣的文章:

标签云: