"부드럽게 나를 죽여라"

"부드럽게 나를 죽여라"

다음을 수행하는 일반적인 방법이나 기존 유틸리티가 있습니까?

  • kill프로세스
  • 정상적으로 종료될 때까지 몇 초 정도 기다립니다.
  • kill -9아직 멈추지 않았다면

답변1

보통 나는 일을 단순하게 유지하려고 노력합니다.

kill $pid; sleep 5; kill -9 $pid

또는 원하는 경우 프로세스 이름으로 프로세스를 검색할 수 있습니다.

pkill $pattern; sleep 5; pkill -9 $pattern

이는 터미널에서 작업할 때 편리하지만 스크립팅의 경우 다른 답변에서 더 복잡한 솔루션을 선호할 수 있습니다.

답변2

~/.bashrc 파일에 넣으세요. 이렇게 사용하세요 killany program_name. 일치하는 이름을 가진 모든 프로그램을 종료하려고 시도합니다.

killany ()
{
    PS=$(ps aux)
    PIDS=$(echo "$PS" | \   
    awk -v proc="$1" '{ reg=proc; if(match($11$12$13$14,reg)) print $2 }')
    if [ -n "$PIDS" ]; then
        echo "killing pids '$PIDS'"
        kill $PIDS 2> /dev/null
        sleep 3
        kill -1 $PIDS 2> /dev/null
        sleep 2
        kill -9 $PIDS 2> /dev/null
    else
        echo "none to kill"
    fi
}

답변3

"부드럽게 나를 죽여라"

나는 이를 위해 몇 개의 작은 쉘 스크립트를 사용하여 프로젝트를 실행했습니다.

https://github.com/alanfranz/killmesoftly

관련 정보