리눅스: 백그라운드 태스크 제거
Linux에서 마지막으로 생성된 백그라운드 작업을 중지하려면 어떻게 해야 합니까?
예:
doSomething
doAnotherThing
doB &
doC
doD
#kill doB
????
직업 번호로 살인을 할 수 있습니다.태스크를 백그라운드에 배치하면 다음과 같은 것이 나타납니다.
$ ./script &
[1] 35341
그거[1]
는 작업 번호이며 다음과 같이 참조할 수 있습니다.
$ kill %1
$ kill %% # Most recent background job
작업 번호 목록을 보려면 다음을 사용하십시오.jobs
지휘권에서 더 보기man bash
:
셸에서 작업을 참조하는 방법은 여러 가지가 있습니다.캐릭터
%
작업 이름을 소개합니다.작업번호n
라고 할 수 있습니다.%n
작업을 시작하는 데 사용된 이름의 접두사를 사용하거나 명령줄에 나타나는 하위 문자열을 사용하는 것도 참조할 수 있습니다.예를들면,%ce
중지됨을 나타냅니다.ce
작업. 접두사가 둘 이상의 작업과 일치하면 bash에서 오류를 보고합니다.사용.%?ce
반면에, 문자열을 포함하는 모든 작업을 말합니다.ce
명령행에 있습니다.하위 문자열이 둘 이상의 작업과 일치하는 경우 bash가 오류를 보고합니다.기호들%%
그리고.%+
셸의 현재 작업 개념을 참조합니다. 이는 포그라운드에 있거나 백그라운드에서 시작된 동안 마지막으로 중지된 작업입니다.이전 작업은 다음을 사용하여 참조할 수 있습니다.%-
작업과 관련된 출력(예: 작업 명령 출력)에서 현재 작업은 항상 다음과 같이 플래그가 지정됩니다.+
그리고 이전 직업은.-
싱글%
(반복된 작업 사양 없음) 또한 현재 작업을 나타냅니다.
Bash에는 이에 대한 특수 변수가 있습니다.
kill $!
백그라운드에서 실행된 마지막 프로세스의 PID로 확장됩니다.
다음 명령은 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"를 사용하여 찾습니다.
존 쿠겔만의 대답처럼%
작업 사양과 관련이 있습니다.
어떻게 하면 효율적으로 찾을 수 있을까요? 의 &pattern 명령어를 적게 사용합니다.남자는 호출기를 덜 사용하는 것 같습니다. (잘 모르겠습니다.)'man' Bash에 를 입력한 다음 을 입력합니다.'%'를 포함하는 라인만 표시됩니다.모두 다시 표시하려면 을 입력한 다음 을 입력합니다.
killall 명령을 사용하면 됩니다.
모든 태스크 이름 제거
자세한 내용 및 고급 옵션을 보려면 "man killall"을 입력하십시오.
언급URL : https://stackoverflow.com/questions/1624691/linux-kill-background-task
'programing' 카테고리의 다른 글
Postgres가 특정 인덱스를 사용하도록 강제하려면 어떻게 해야 합니까? (0) | 2023.05.04 |
---|---|
TargetType="{x:Button}"과 TargetType="Button"을 입력하시겠습니까? (0) | 2023.05.04 |
ValueError: 기본값이 10인 int()의 리터럴이 잘못되었습니다. (0) | 2023.05.04 |
WPF 데이터 그리드에 목록을 바인딩하려면 어떻게 해야 합니까? (0) | 2023.05.04 |
사용자의 현재 위치/좌표 가져오기 (0) | 2023.05.04 |