を実行していない:
/usr/bin/mysqld_safe
これはpgrep
を実行し、STATUSに結果を格納します。
STATUS=$(/usr/bin/pgrep mysql | wc -l)
STATUSが再び更新されることはありません。これは、STATUSの固定固定値を使用してループします。
while $STATUS -eq 0; do
echo "$STATUS"
sleep 1
done
whileループでのテストが不正です。読み込みする必要があります。
while [ "$STATUS" -eq 0 ]; do
をライブアップデートを取得するには、pgrep
は、ループ内で実行する必要があります。さらに、pgrep
は、終了コード、テストコマンド、[...]
を設定する不必要である理由:
のMySQLのインスタンスが存在しないながら実行ループを維持するには、次の戻りpgrep
while ! /usr/bin/pgrep mysql >/dev/null; do
成功(終了コード= 0 )に一致するプロセスが見つかったとき。一致するプロセスがないときにループを繰り返すようにしているようだから、!
を使用して終了コードを反転します。
それとも、戻って一緒にそれをすべて置く:
/usr/bin/mysqld_safe
while ! /usr/bin/pgrep mysql >/dev/null; do
echo "No such process"
sleep 1
done
はwhile
ループが実行されることはありません、mysqld_safe
が正常に起動すると仮定すると。 whileループからの出力は、mysqld_safe
が開始されないことがわかります。
あなたが代わりに連続ステータス更新する場合:
/usr/bin/mysqld_safe
while true; do
/usr/bin/pgrep mysql >/dev/null
echo "Current status: $?"
sleep 1
done
まだ動作しません –
@サリバンご確認ください:コードのどの部分を試しましたか?何をしたいのですか?そして、実際に試したときに何が起こったのですか? – John1024
私はそのようなプロセス通知を受け取りません。 –