Kill로 Job을 Kill하는 방법을 알고 있지만 %(number)
Background Job으로 Job을 Kill하는 것이 가능한지, 질문은 " tail
Kill as a Background Job?" 입니다.
답변1
몇 개 있어요위치를 지정하는 방법%foo
, 지정된 명령이 시작하는 작업 foo
과 %?foo
지정된 명령에 하위 문자열이 포함된 작업이 포함됩니다 foo
. 명시적인 접두사 또는 하위 문자열을 지정해야 합니다. 여러 문자열이 일치하면 셸에서 오류를 보고합니다. 이것은 POSIX 기능입니다.
kill %tail
(이것은 현재 쉘을 구체적으로 죽이는 백그라운드 작업이라는 점에 유의하십시오.모두 tail
현재 셸에 대한 작업인지 여부에 관계없이 사용자로 실행되는 프로세스를 사용할 수 있습니다.pkill
. 분명히 이것은 다음과 같은 일반적인 유틸리티로 부수적 손상을 일으킬 수 있습니다 tail
. 먼저 동일한 인수로 명령을 실행 pgrep
하고 그것이 무엇을 죽이는지 확인하십시오. )
답변2
다른 프로세스처럼 종료하면 작동합니다.
pkill tail
하지만 조심하고 싶다면 top, htop, ps를 이용해 미리 PID를 확인해 볼 수도 있다.
답변3
이를 수행하는 방법에는 여러 가지가 있습니다.
<port>
당신이 그 번호를 알고 있다면
netstat -anp | grep :<port> | awk '{print $7}' | awk -F'[/]' '{print $1}' | grep -v "-" | xargs -I % kill -9 %
<path>
파일 설명자를 알고 있는 경우
cat <path> | xargs -I % kill -9 %
<process>
이름을 안다면
pkill -f <process>
프로세스 이름의 일부를 알고 있는 경우<pattern>
사용 ps
및 grep
:
ps -ef | grep '<pattern>' | grep -v grep | awk '{print $2}' | xargs -r kill -9
이것은 관련된 모든 것을 죽일 것입니다<pattern>
ps
다음과 함께 사용 awk
:
ps -ef | awk '/<pattern>/ && !/awk/ {print $2}' | xargs -r kill -9
이것은 관련된 모든 것을 죽일 것입니다<pattern>