为什么我无法使用kill命令发送SIGRTMAX-9信号?

为什么我无法使用kill命令发送SIGRTMAX-9信号?

我有一个 bash 脚本在后台运行并想发送SIGRTMAX-9向它发出信号。

SIGRTMAX-* 情况

为什么kill命令无法识别SIGRTMAX-9信号?

╭─ /tmp/tmp.KHFbrCQhOB                                                        
╰─ kill -SIGRTMAX-9 $(pgrep bash)
kill: unknown signal: SIGRTMAX-9
kill: type kill -l for a list of signals

如果我使用以下命令运行kill命令sudo

╭─ /tmp/tmp.KHFbrCQhOB                                                        
╰─ sudo kill -SIGRTMAX-9 $(pgrep bash)
kill: invalid argument S

Usage:
 kill [options] <pid> [...]
 
 ...

 For more details see kill(1).

SIGRTMIN+* 情况

如果我发送SIGRTMIN+3它仅适用于sudo

╭─ /tmp/tmp.KHFbrCQhOB                                                 
╰─ kill -SIGRTMIN+3 $(pgrep bash)     
kill: unknown signal: SIGRTMIN+3
kill: type kill -l for a list of signals
╭─ /tmp/tmp.KHFbrCQhOB                                                        
╰─ sudo kill -SIGRTMIN+3 $(pgrep bash)

╭─ /tmp/tmp.KHFbrCQhOB                                                        
╰─ echo $?                            
0

答案1

我解决了这个问题,很简单,只需将which kill其打印出来即可kill: shell built-in command;事情是我在里面zsh 会话,并且它有一个内置kill命令,我修复了它调用/bin/kill -SIGRTMAX-9 $(pgrep bash)而不是仅仅调用kill -SIGRTMAX-9 $(pgrep bash).

相关内容