"kill -p"가 실제로 작동합니까?

"kill -p"가 실제로 작동합니까?

매뉴얼 페이지에 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하고 프로그램 으로 파이프하려고 시도합니다. (이것은 (또는 )이 아닌 쉘이 수행하는 작업이며 두 프로세스 모두에 전달되지 않습니다 .) 귀하의 경우 두 번째 부분은 이므로 쉘은 이름이 지정된 실행 파일을 찾으려고 시도 하지만 오류 메시지와 함께 실패합니다.barfoobarfoobar|-p 123-p

답변2

killBash에 이라는 명령이 내장되어 있다는 사실을 오해하고 계신 것 같습니다 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

관련 정보