Linux之kill命令


Kill 命令列表


alex@ubuntu:~$ 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

Linux Signals

Signals
Linux Signals are:

Signal_Name Number  Description
SIGHUP       1      Hangup (POSIX)
SIGINT       2      Terminal interrupt (ANSI)
SIGQUIT      3      Terminal quit (POSIX)
SIGILL       4      Illegal instruction (ANSI)
SIGTRAP      5      Trace trap (POSIX)
SIGIOT       6      IOT Trap (4.2 BSD)
SIGBUS       7      BUS error (4.2 BSD)
SIGFPE       8      Floating point exception (ANSI)
SIGKILL      9      Kill(can't be caught or ignored) (POSIX)
SIGUSR1      10     User defined signal 1 (POSIX)
SIGSEGV      11     Invalid memory segment access (ANSI)
SIGUSR2      12     User defined signal 2 (POSIX)
SIGPIPE      13     Write on a pipe with no reader, Broken pipe (POSIX)
SIGALRM      14     Alarm clock (POSIX)
SIGTERM      15     Termination (ANSI)
SIGSTKFLT    16     Stack fault
SIGCHLD      17     Child process has stopped or exited, changed (POSIX)
SIGCONT      18     Continue executing, if stopped (POSIX)
SIGSTOP      19     Stop executing(can't be caught or ignored) (POSIX)
SIGTSTP      20     Terminal stop signal (POSIX)
SIGTTIN      21     Background process trying to read, from TTY (POSIX)
SIGTTOU      22     Background process trying to write, to TTY (POSIX)
SIGURG       23     Urgent condition on socket (4.2 BSD)
SIGXCPU      24     CPU limit exceeded (4.2 BSD)
SIGXFSZ      25     File size limit exceeded (4.2 BSD)
SIGVTALRM    26     Virtual alarm clock (4.2 BSD)
SIGPROF      27     Profiling alarm clock (4.2 BSD)
SIGWINCH     28     Window size change (4.3 BSD, Sun)
SIGIO        29     I/O now possible (4.2 BSD)
SIGPWR       30     Power failure restart (System V)

SIGKILL(9) 和 SIGTERM(15) 的区别

SIGKILL 9   Kill(can't be caught or ignored) (POSIX)
# 默认kill 发送信号量
SIGTERM 15  Termination (ANSI)

SIGKILL 是强制终止进程,进程来不及释放资源
SIGTERM 是 优雅 的退出进程,进程接收到SIGTERM可以进行资源释放;

killall命令

killall命令使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。
我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。

语法

killall(选项)(参数)

选项

-e:对长名称进行精确匹配;
-l:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称;
-s:用指定的进程号代替默认信号“SIGTERM”;
-u:杀死指定用户的进程。

参数

进程名称:指定要杀死的进程名称。

实例

杀死所有同名进程

killall vi

文章作者: Alex.Lin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex.Lin !
  目录