私はBashスクリプトの初心者ですが、すぐに習得できます。いつもの。Hudsonのインスタンスを強制終了して再起動するスクリプトを作成しようとしています。環境変数の変更を取得するには、再起動する必要があります。私がこれまでに持っているもの:
#!/bin/bash
h=`pgrep -f hudson`
if test "$h" != ""; then
kill $h
while [ "$h" != "" ]; do
sleep 1
unset h
h=`pgrep -f hudson`
done
fi
java -jar ~/hudson/hudson.war &
スクリプトは、実行中のHudsonインスタンスのPIDを正しく判別し、それを強制終了します。ただし、「kill」行の後で待機するだけで、続行しません。そこでキーを押すと、プロセスの強制終了が完了してスクリプトが終了し、whileループに到達することさえありません。明らかに、プロセスを強制終了する方法について何かが欠けています。ハドソンのプロセスがハングしていて、「キル」に応答していないわけではありません。私が介入するまで、それは正常に終了します。
また、これははるかに効率的である可能性があると確信していますが、今はどこが間違っているのかを理解したいと思います。
前もって感謝します。