等待python脚本返回0

2024-09-30 02:21:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试编写一个脚本,它正在等待数据库联机。 检查数据库连接的脚本是用python编写的,应该每5秒激活一次。如果脚本返回0,则主脚本应继续。你知道吗

我从来没有用shell编写过,所以我只能猜测如何使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)

我的主shell脚本:

echo waiting for database...
while  [ python /root/psqltest.py && echo 0 || echo 1 ]
  do
     sleep 5
  done

错误消息:

 1 ]

谢谢你帮我


Tags: 文件pyecho脚本数据库db地址exit
2条回答

我已经改进了我的脚本,现在bash只调用python脚本并等待它完成,就像Kristof提到的那样。到目前为止,这是可行的,但我试图进一步改进它。你知道吗

#!/usr/bin/python3
#
import psycopg2
import time
import sys

db = None
sys.stdout.write('waiting ')
while db is None:
  try:
      db = psycopg2.connect("dbname='postgis' user='postgres' host='db' password='...'")
      db.close()
  except:
      sys.stdout.write('.')
  sys.stdout.flush()
  time.sleep( 5 )
print('')
exit(0)

shell脚本应该是

while ! python /root/psqltest.py; do
    sleep 5
done

或者不太知名的

until python /root/psqltest.py; do
    sleep 5
done

相关问题 更多 >

    热门问题