加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 为什么/ bin / kill的有效信号与kill不同?

发布时间:2020-12-16 01:46:49 所属栏目:安全 来源:网络整理
导读:我正在尝试编写一个快速bash脚本来通知脚本检测到的某个条件下的程序,并且通过习惯我正在使用一些bin utils的完整路径,即/ bin / rm和/ bin / kill in代替rm并杀死.但是,特别是杀戮,我注意到我可以发送的有效信号有所不同,这让我很困惑: [root@linux]# whic
我正在尝试编写一个快速bash脚本来通知脚本检测到的某个条件下的程序,并且通过习惯我正在使用一些bin utils的完整路径,即/ bin / rm和/ bin / kill in代替rm并杀死.但是,特别是杀戮,我注意到我可以发送的有效信号有所不同,这让我很困惑:

[root@linux]# which kill
/bin/kill

[root@linux]# /bin/kill -l
HUP INT QUIT ILL ABRT FPE KILL SEGV PIPE ALRM TERM USR1 USR2 CHLD CONT
STOP TSTP TTIN TTOU TRAP IOT BUS SYS STKFLT URG IO POLL CLD XCPU XFSZ
VTALRM PROF PWR WINCH UNUSED

[root@linux]# 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

我也没有杀人的别名:

[root@linux]# alias 
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

显然修复只是使用kill,但是为什么它们不同,如??果哪个kill解决到/ bin / kill呢?

解决方法

kill是一个内置的bash.不幸的是,bash没有内置的(比如zsh告诉我,kill是一个内置的shell命令),而/usr/bin /无法知道你的shell内置函数. (我希望bash能够快速检查命令是否内置命令.但是成功帮助杀死对于交互式使用来说已经足够了).

正如@chepner在注释中所解释的那样,键入-a COMMAND可用于获取COMMAND的可用变体列表:PATH上任何目录中的内置函数,别名,函数和二进制文件:

$type -a kill
kill is a shell builtin
kill is /bin/kill

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读