特定のスクリプトで実行されているプロセスを終了する方法

特定のスクリプトで実行されているプロセスを終了する方法

同時に実行される2つのスクリプトファイルがあります。他のスクリプトのプロセスjavaに影響を与えずに、1つのスクリプトで実行されているプロセスを終了するだけです。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

関連情報