Linux : 배경 작업을 처치하십시오
-
06-07-2019 - |
문제
Linux에서 마지막으로 스폰 된 배경 작업을 어떻게 죽립니까?
예시:
doSomething
doAnotherThing
doB &
doC
doD
#kill doB
????
해결책
bash에는 이것에 대한 특별한 변수가 있습니다.
kill $!
$! 백그라운드에서 실행 된 마지막 프로세스의 PID로 확장됩니다.
다른 팁
직업 번호로 죽일 수 있습니다. 백그라운드에 작업을 넣으면 다음과 같은 것을 볼 수 있습니다.
$ ./script &
[1] 35341
저것 [1]
작업 번호이며 다음과 같이 참조 할 수 있습니다.
$ kill %1
$ kill %% # Most recent background job
작업 번호 목록을 보려면 사용하십시오 jobs
명령. 더 많은 man bash
:
쉘에서 작업을 참조하는 방법에는 여러 가지가 있습니다. 캐릭터
%
작업 이름을 소개합니다. 작업 번호n
로 언급 될 수 있습니다%n
. 작업을 시작하는 데 사용되는 이름의 접두사를 사용하거나 명령 줄에 나타나는 부분 문자열을 사용하는 작업을 참조 할 수도 있습니다. 예를 들어,%ce
중지를 나타냅니다ce
직업. 접두사가 둘 이상의 작업과 일치하면 Bash가 오류를보고합니다. 사용%?ce
, 반면에 문자열이 포함 된 모든 작업을 말합니다.ce
명령 줄에서. 하위 문자열이 둘 이상의 작업과 일치하면 Bash가 오류를보고합니다. 기호%%
그리고%+
현재 작업에 대한 쉘의 개념을 참조하십시오.이 작업은 전경에 있거나 백그라운드에서 시작하는 동안 마지막으로 중지 된 작업입니다. 이전 작업은 사용을 참조 할 수 있습니다%-
. 작업과 관련된 출력 (예 : 작업 명령의 출력)에서 현재 작업은 항상+
, 그리고 이전 직업은 a-
. 싱글%
(직무 사양이 동반되지 않음)도 현재 작업을 말합니다.
다음 명령은 PID와 함께 세션의 모든 배경 프로세스 목록을 제공합니다. 그런 다음 사용하여 프로세스를 죽일 수 있습니다.
jobs -l
예제 사용 :
$ sleep 300 &
$ jobs -l
[1]+ 31139 Running sleep 300 &
$ kill 31139
이것은 모든 배경 프로세스를 죽여야합니다.
jobs -p | xargs kill -9
skill doB
skill
주어진 기준에 따라 하나 또는 다중 프로세스를 선택할 수있는 킬 명령의 버전입니다.
PID가 필요합니다 ... "ps -a"를 사용하여 찾으십시오.
이것은 주제가 아닌 대답이지만 관심이있는 사람들에게는 가치가 있습니다.
@John Kugelman의 답변에서와 같이 %는 직무 사양과 관련이 있습니다.그것을 효율적으로 찾는 방법? Less & Pattern 명령을 사용하십시오, 사람은 더 적은 호출기를 사용하는 것 같습니다 (확실하지 않음). Man Bash Type &%에서 Enter 유형은 '%'를 포함하는 줄만 표시하여 그런 다음 입력하십시오.
Killall 명령 만 사용하십시오.
Killall TaskName
자세한 정보와 고급 옵션을 보려면 "Man Killall"을 입력하십시오.