쉘 스크립트에서 실행 파일이 실행 중인지 확인하는 방법은 무엇입니까?

쉘 스크립트에서 실행 파일이 실행 중인지 확인하는 방법은 무엇입니까?

실행 파일을 쉘 스크립트 파일 abc.sh에 넣었습니다. 이제 추가하고 싶습니다하나내 스크립트가 시작되기 전에 실행되는지 확인하기 위한 abc.sh의 줄그리고그렇다면, 그렇다면죽이다그 실행 파일.

답변1

pgrep주어진 프로세스 이름을 사용하여 실행 파일을 찾을 수 있습니다 .

$ pgrep firefox
3212
$ pgrep firef
3212

옵션을 사용하여 -l두 번째 열에 이름을 인쇄합니다.

$ pgrep -l firefox
3212 firefox

-x이름이 패턴과 정확하게 일치하는 프로세스를 일치시키려면 옵션을 사용하십시오 .

$ pgrep -x firefox
3212
$ pgrep -x firef
$ 

실행 파일의 PID를 반환하면 해당 실행 파일을 종료할 수 있습니다. pkillPID 값에 관심이 없다면 다음 명령을 사용하여 이 작업을 단계별로 진행할 수도 있습니다.

$ pkill -x firefox

주어진 이름을 가진 프로세스를 종료합니다. 이 프로세스가 없으면 $?가 설정되는 것 외에는 아무 일도 일어나지 않습니다. 변수는 1입니다.

답변2

# killall executable_name

또는

# pkill executable_name

그럴 테지만 이건나쁜 생각. 이 기사는 이유(기본적으로 프로그램 이름은 완전히 임의적이므로 잘못된 프로세스를 쉽게 종료할 수 있음)와 이를 올바르게 수행하는 방법(이름으로 종료할 필요가 없도록 프로그램을 재구성)을 잘 설명합니다.

관련 정보