리눅스 : 백그라운드 작업 종료
리눅스에서 마지막으로 생성 된 백그라운드 작업을 어떻게 죽일 수 있습니까?
예:
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는 오류를보고합니다. 기호%%
및%+
현재 작업의 쉘 개념을 나타냅니다.이 작업은 포 그라운드에 있거나 백그라운드에서 시작된 동안 마지막으로 중지 된 작업입니다. 이전 작업을 사용하여 참조 할 수 있습니다%-
. 작업과 관련된 출력 (예 : jobs 명령의 출력)에서 현재 작업은 항상으로 표시되고+
이전 작업은으로 표시-
됩니다. 단일%
작업 (동봉 된 작업 스펙이 없음)도 현재 작업을 나타냅니다.
다음 명령은 pid와 함께 세션의 모든 백그라운드 프로세스 목록을 제공합니다. 그런 다음이를 사용하여 프로세스를 종료 할 수 있습니다.
jobs -l
사용법 예 :
$ sleep 300 &
$ jobs -l
[1]+ 31139 Running sleep 300 &
$ kill 31139
이것은 모든 백그라운드 프로세스를 종료해야합니다.
jobs -p | xargs kill -9
skill doB
skill
주어진 기준에 따라 하나 이상의 프로세스를 선택할 수있는 kill 명령 버전입니다.
pid가 필요합니다. "ps -A"를 사용하여 찾으십시오.
이것은 주제가 아닌 답변이지만 관심있는 사람들에게는 가치가 있습니다.
@ John Kugelman의 답변 에서처럼 %는 작업 사양과 관련이 있습니다. 효율적으로 찾는 방법? less의 & pattern 명령을 사용하면 man bash 유형 & %에서 man이 적은 호출기를 사용하는 것 같습니다 (확실하지 않음). Enter를 입력하면 '%'를 포함하는 행만 표시됩니다. 그런 다음 Enter를 누르십시오.
killall 명령을 사용하십시오.
killall 작업 이름
자세한 정보와 고급 옵션을 보려면 "man killall"을 입력하십시오.
참고 URL : https://stackoverflow.com/questions/1624691/linux-kill-background-task
'Programing' 카테고리의 다른 글
시스템 재시작시 영구 자동 시작 (노드) (0) | 2020.05.17 |
---|---|
IE 11 용 CSS 핵을 작성하는 방법? (0) | 2020.05.17 |
포드 설치 -bash : 포드 : 명령을 찾을 수 없음 (0) | 2020.05.17 |
인덱스 배열을 1-hot 인코딩 된 numpy 배열로 변환 (0) | 2020.05.17 |
Gitignore가 작동하지 않습니다 (0) | 2020.05.17 |