특정 스크립트에서 실행 중인 프로세스를 종료하는 방법

특정 스크립트에서 실행 중인 프로세스를 종료하는 방법

동시에 실행되는 두 개의 스크립트 파일이 있습니다. 다른 스크립트의 프로세스 java에 영향을 주지 않고 한 스크립트에서 실행 중인 프로세스 만 종료하면 됩니다 .java

답변1

pgrep -x script1 | xargs -I pid pkill -x -P pid java

java상위 프로세스를 종료하기 위해 호출되는 프로세스입니다 script1.

답변2

이를 구현하고, 강력하게 만들고, 임시 파일에 대한 경합을 방지하는 등 다양한 방법이 있습니다. 하지만 다음과 같이 시작할 수 있습니다.

script1:
# add the line:
# $! returns the process id  of last job run in background
java -jar myjar1 &
echo $! > /tmp/script1.txt
...
# kill the script 2
# -9 SIGKILL or -15 SIGTERM
kill -9 `cat /tmp/script2.txt`

script2:
# add the line:
# $! returns the process id  of last job run in background
java -jar myjar2 &
echo $! > /tmp/script2.txt
...
# kill the script 1
# -9 SIGKILL or -15 SIGTERM
kill -9 `cat /tmp/script1.txt`

더 나은 결과를 얻으려면 "cat it" 전에 파일이 존재하는지 확인할 수 있습니다.

if [ -e "/tmp/scriptN.txt" ]; then
    kill -9 `cat /tmp/scriptN.txt`
fi

관련 정보