백그라운드 작업을 종료하는 방법은 무엇입니까?

백그라운드 작업을 종료하는 방법은 무엇입니까?

Kill로 Job을 Kill하는 방법을 알고 있지만 %(number)Background Job으로 Job을 Kill하는 것이 가능한지, 질문은 " tailKill 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>

사용 psgrep:

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>

관련 정보