2015-10-28 76 views
2

所以我試圖讓uWSGI和nginx的共同努力,並希望設置以下命令行自動執行,並開始我的uWSGI後臺服務:uWSGI自動啓動與systemd

uwsgi --master --processes 4 --die-on-term --uid uwsgi --gid nginx --socket /tmp/uwsgi.sock --chmod-socket --stats :1717 --no-site --vhost --logto /var/log/uwsgi.log 

當使用systemd我認爲唯一的我需要做的事情是使用ExecStart=並啓動該命令。但是由於systemd需要絕對路徑,所以我在默認的uWSGI啓動腳本中看到/usr/bin/uwsgiusr/sbin/uwsgi將是默認的啓動路徑。

所以對我來說最後的exec命令看起來是這樣的:

ExecStart=/usr/bin/uwsgi --master --processes 4 --die-on-term --uid uwsgi --gid nginx --socket /tmp/uwsgi.sock --chmod-socket --stats :1717 --no-site --vhost --logto /var/log/uwsgi.log 

的問題:當運行這個是無法找到在virtualenv中運行一切選項--no-site。 在命令行中以uwsgi開頭時,這不是問題。 但即使從命令行直接啓動/usr/bin/uwsgi,我也會遇到此錯誤。

對我來說,它看起來像uwsgi命令不只是直接運行/usr/bin/uwsgi。但我不確定我需要做些什麼來實現這一目標。

我真的很感謝任何幫助,我可以得到。

回答

2

因此,我使用whereis uwsgi來查看每個其中包含uwsgi實例的文件夾,並發現默認的uwsgi應用程序似乎在/usr/local/uwsgi中。

0

你有沒有試過把你的uwsgi配置放在一個單獨的文件中?

ExecStart=/usr/bin/uwsgi --ini /path/to/your/app/uwsgi.ini 

你可以閱讀更多的uwsgi INI CONFIGS here