- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:プロセスを監視するシェルスクリプトのエラー)
プロセスを監視するシェルスクリプトのエラー
このQ&Aのポイント
- TCPサーバーに対してクライアントが動作しているか確認するためのプログラムを作成中
- プログラムを起動する時としない時があり、正常に動作しているか確認したい
- 起動するとエラーが発生し、Syntax error: "done" unexpectedと表示される
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
コピペしてCentOSで動かしてみましたが、エラーは出ないです。 #!/usr/bin/sh while true do if ps axww | grep " [s]udo python /home/pi/Desktop/tcp_client1_02.py " >/dev/null then echo "プロセスは生きています" else echo "プロセスは死んでいます" sudo /home/pi/python/autorun_script fi sleep 3 done でどうでしょうか?
お礼
回答頂きありがとうございます。 いただいたシェルスクリプトをtest20160501.shというファイルに保存し、 $ sh test20160501.sh これで実行してみたのですが、 test20160501_01.sh: 12: test20160501_01.sh: Syntax error: "done" unexpected (expecting "then") このようなエラーが出て起動できませんでした。
補足
回答頂きありがとうございます。 教えていただきましたシェルスクリプトが私のラズパイ3で動くことを確認できました。教えて頂きました。コードをコピーしてleafpadにペーストで保存する方法でシェルスクリプトのファイルを作成していたのですが、一度改行コードを”LF”に設定して上書き保存したら動き出しました。多分改行コードってやつが問題だったようです。 (ラズパイ3で動作を確認したシェルスクリプト) #!/usr/bin/sh while true do if ps axww | grep "[s]udo python /home/pi/Desktop/tcp_client1_02.py" >/dev/null then echo "プロセスは生きています" else echo "プロセスは死んでいます" sudo sh /home/pi/python/autorun_script fi sleep 3 done それと、私が質問で出していたif文箇所 isAlive=`ps -ef | grep " sudo python /home/pi/Desktop/tcp_client1_02.py " | \ grep -v grep | wc -l` if [ $isAlive = 1 ]: then このようにしても動作していることも確認できました。 助かります。