Ubuntu에서 "kill" 명령 사용

Ubuntu에서 "kill" 명령 사용

나는 kill 명령의 출력을 가져와서 파일로 인쇄하는 간단한 스크립트를 실행하고 있습니다. 그러나 더 나은/더 깊은 또는 더 흥미로운 결과를 얻으려고 노력하는 동안 나는 다음 명령을 깨달았습니다.

kill -l

명령과 다른 출력을 제공합니다.

sudo kill -l

내 생각에 sudo 권한을 부여한다는 것은 일반적으로 더 많은 정보에 액세스하거나 더 많은 정보를 볼 수 있다는 것을 의미한다고 생각합니다(더 많은 권한과 모든 것을 부여하기 때문입니다). 그러나 이 경우에는 거의 완전히 다른 출력이 얻어지는 것 같습니다.

누군가가 두 번째 명령의 출력을 설명하고 그것이 어떻게/왜 다른 출력을 생성하는지에 대해 밝힐 수 있기를 바랍니다. 후속 질문은 이 기능이 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를 통해 실행됩니다. 본질적으로 동일한 유틸리티의 두 가지 다른 구현은 약간 다릅니다./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( 다른 텍스트가 있는 두 가지도 있습니다 .)

쉘에 내장 버전이 있는 주된 이유 kill는 프로세스 제한에 도달하면 다른 프로세스를 종료하기 위해 새 프로세스를 시작할 수 없기 때문입니다.

관련 정보