データベースがオンラインになるのを待っているスクリプトを書こうとしています。 データベース接続をチェックするスクリプトはPythonで書かれており、5秒ごとにエキサイティングする必要があります。スクリプトが0を返した場合は、メインスクリプトを続行する必要があります。Pythonスクリプトが0を返すのを待つ
私はシェルで書かなかったので、私はpythonスクリプトをwhileループの状態にする方法しか考えていません。ここに私の試みですが、私はそれを正しくする方法がわかりません。
pythonスクリプトはうまくいきます。
psqltest.py:
#!/usr/bin/python2.4
#
import psycopg2
try:
db = psycopg2.connect("dbname='postgis' user='postgres' host='db' password='postgres'")
except:
exit(1)
exit(0)
私のメインのシェルスクリプト:
echo waiting for database...
while [ python /root/psqltest.py && echo 0 || echo 1 ]
do
sleep 5
done
エラーメッセージ:
OTだろうが、あなたのpython 2.4を使用することに正当な理由がありますか? –
実際には、私は私もpython 3を使用することができると思う – EidEchse
Pythonでループをコード化し、接続が成功したときにシェルスクリプトに制御を戻すのは簡単ではないでしょうか? –