스크립트와 관련된 모든 프로세스 종료

스크립트와 관련된 모든 프로세스 종료

여러 프로그램을 순서대로 호출하는 스크립트가 있습니다. 이 스크립트를 완전히 종료하려면 어떻게 해야 합니까? Ctrl+ 를 클릭 C하여 일부 프로세스를 취소할 수 있지만 전체 프로세스를 종료하려면 여러 번(심지어 수천 또는 수만 번) 클릭해야 한다는 것을 알고 있습니다 . 시계나 명령만으로 스크립트를 종료하는 방법은 무엇입니까? (또는 여러 명령?)

답변1

문제는 신호가 Ctrl + C스크립트에 도달하지 않고 시작된 프로세스에만 도달한다는 것입니다. 을 계속 C누른 상태에서 손가락을 놓아볼 수 있습니다 Ctrl + C. 결국 신호는 쉘에 도달하고 새 프로그램은 시작되지 않습니다.

또는 을 클릭 Ctrl + Z하고 입력 할 수도 있습니다 kill %1.

그러면 전체 스크립트가 일시 중지된 다음 모든 것이 종료됩니다.

답변2

 1. Get the script name (say abc.sh)
 2. ps -ef | grep "abc.sh" | awk '{print "kill "$2}' > file.sh
 3. /bin/bash file.sh

kill에 -9 옵션을 사용할 수 있습니다. abc.sh 스크립트에 상위 프로세스가 있으면 상위 프로세스도 종료됩니다. 그러므로 현명하게 사용하는 것이 좋습니다. 대부분의 경우 위의 3단계는 정상적으로 작동합니다.

관련 정보