programing

리눅스: 백그라운드 태스크 제거

megabox 2023. 5. 4. 19:47
반응형

리눅스: 백그라운드 태스크 제거

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

반응형