Ubuntuで "kill"コマンドを使用する

Ubuntuで "kill"コマンドを使用する

私はkillコマンドの出力を取得してファイルに印刷する単純なスクリプトを実行しています。しかし、より良い/より深いまたはより興味深い結果を得ることを試みている間、私は次のコマンドを実現しました。

kill -l

コマンドとは異なる出力を提供します。

sudo kill -l

私の考えにsudo権限を与えることは、一般的に、より多くの情報にアクセスしたり、より多くの情報を見ることができることを意味すると思います(より多くの権限とすべてを付与するためです)。しかし、この場合、ほぼ完全に異なる出力が得られるようです。

誰かが2番目のコマンドの出力を説明し、それがどのように/なぜ別の出力を生成するのかを明らかにできることを願っています。その後の質問は、この機能がkillコマンドに固有のものか、または誰かがそのような出力を提供する追加のコマンドに遭遇したかどうかです。

kill -lvsの出力sudo kill -l

anant@anant-VirtualBox:~$ 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
anant@anant-VirtualBox:~$ sudo kill -l
[sudo] password for anant:
HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS
anant@anant-VirtualBox:~$

答え1

$ type kill
kill is a shell builtin

Runはkill -l組み込みのシェルバージョンを実行するだけです。ただし、sudoそのコマンドはシェルを介して実行されないため、sudo kill -l代わりにfindを介して実行されます。本質的に、同じユーティリティの2つの異なる実装はわずかに異なります。/bin/kill$PATH-l

シェル組み込み実装と外部実装を持つユーティリティを使用して、同様の結果を得ることができます。多くはありません。echoただし、printfBashの組み込みバージョンは、少なくとも次の点を除いて、GNU coreutilsのバージョンと似ています。

$ echo --help              # Bash
--help
$ /bin/echo --help         # coreutils  
Usage: /bin/echo [SHORT-OPTION]... [STRING]...
  or:  /bin/echo LONG-OPTION
Echo the STRING(s) to standard output.
...

printf --help(他のテキストがある2つもあります。)

シェルに組み込みバージョンがある主な理由killは、プロセス制限に達すると、他のプロセスを終了するために新しいプロセスを開始できないためです。

関連情報