매뉴얼 페이지에 kill
다음을 작성하십시오.
요약
kill [ -s signal | -p ] [ -a ] [ -- ] pid ... kill -l [ signal ] -p Specify that kill should only print the process id (pid) of the named processes, and not send any signals.
하지만 RH와 RHEL에서 여러 번 시도했지만 이와 같은 명령은 kill -s SIGHUP |-p 123
작동하지 않았고 항상 오류를 보고했습니다.
bash: -p: 명령을 찾을 수 없습니다
내가 실수라도 한 걸까?
답변1
kill [ -s signal | -p ]
매뉴얼 페이지에서 이 구문의 의미는 다음과 같습니다.
당신은 그것을 사용할 수 있습니다
kill -s signal
또는을 사용할 수 있지만 동시에 둘 다kill -p
사용할 수는 없습니다 .-s
-p
파이프( |
)는 (독점적으로) 나타내거나 문서에서는 명령의 일부가 아닙니다.
입력하는 대로
foo | bar
쉘에서는 출력을 시작 foo
하고 프로그램 으로 파이프하려고 시도합니다. (이것은 (또는 )이 아닌 쉘이 수행하는 작업이며 두 프로세스 모두에 전달되지 않습니다 .) 귀하의 경우 두 번째 부분은 이므로 쉘은 이름이 지정된 실행 파일을 찾으려고 시도 하지만 오류 메시지와 함께 실패합니다.bar
foo
bar
foo
bar
|
-p 123
-p
답변2
kill
Bash에 이라는 명령이 내장되어 있다는 사실을 오해하고 계신 것 같습니다 kill
.
$ type -a kill
kill is a shell builtin
kill is /usr/bin/kill
kill is /bin/kill
당신이 읽고 있는 매뉴얼 페이지는 kill
아래에 있는 명령을 참조합니다 /bin
. 전체 경로를 사용하여 소환하세요.
$ /bin/kill -p sleep
16486
그건 그렇고, 이것은 /usr/bin/kill
단지 링크입니다 /bin/kill
.
$ ls -l /usr/bin/kill
lrwxrwxrwx 1 root root 14 Feb 9 2011 /usr/bin/kill -> ../../bin/kill
$ readlink -m /usr/bin/kill
/bin/kill