Debian服务器,uwsgi在启动时由crontab @reboot启动。
在 uwsgi.log :
中返回此内容ILE " /usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql/base.py" ;, 第175行,在get_new_connection中 connection = Database.connect(** conn_params)File" /usr/lib/python2.7/dist-packages/psycopg2/ init .py",164行in 连 conn = _connect(dsn,connection_factory = connection_factory,async = async)django.db.utils.OperationalError:无法连接到 server:连接被拒绝服务器是否在主机上运行" 127.0.0.1" 并接受端口5432上的TCP / IP连接?
Thu Mar 24 05:19:02 2016 - 无法加载应用0(mountpoint ='') (可以找不到或导入错误)Thu Mar 24 05:19:02 2016 - * no app加载。进入完全动态模式 Thu Mar 24 05:19:02 2016 - uWSGI以多种解释程序模式运行*
如果我等了,那么postgresql启动并重启uwsgi一切正常。
有没有办法告诉uwsgi等待postgresql?
答案 0 :(得分:0)
使用systemd每天启动uWSGI而不是cron。
使用内容创建文件/etc/systemd/system/uwsgi.service
:
[Unit]
Description=uWSGI
After=syslog.target
After=postgresql@9.4-main.service
Wants=postgresql@9.4-main.service
[Service]
ExecStart=/usr/local/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini
Restart=always
KillSignal=SIGTERM
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
更改任何你想要的课程开始命令。
如果要启动多个uWSGI服务器(可能针对多个用户),请考虑使用uWSGI Emperor。您甚至可以创建一个共享目录,其中每个人都可以创建和管理它自己的文件(通过在目录上设置粘滞位)并将emperor设置为暴君模式,因此每个vassal将仅从拥有指定文件的用户帐户启动,如果你想让任何人都有能力创建自己的uWSGI实例。