我已經使用werkzeug創建了小型web服務器,並且能夠以通常的Python方式運行它,使用python my_server.py
。頁面加載,一切正常。現在我想在我的電腦啓動時啓動它。最簡單的方法是什麼?我一直在努力與暴發戶,但它似乎並沒有「生活在一個背景」因爲我執行start my_server
後,我立即收到kernel: [ 8799.793942] init: my_server main process (7274) terminated with status 1
在啓動時運行python腳本作爲守護進程(Ubuntu)
my_server.py:
...
if __name__ == '__main__':
from werkzeug.serving import run_simple
app = create_app()
run_simple('0.0.0.0', 4000, app)
新貴配置文件my_server.conf :
description "My service"
author "Some Dude <[email protected]>"
start on runlevel [2345]
stop on runlevel [016]
exec /path/to/my_server.py
start on startup
任何想法如何使它工作?或者任何其他更好的方式來守護腳本?
更新: 我相信問題在於my_server.py
。它似乎並沒有首先啓動網絡服務器(方法run_simple()
)。應該採取哪些步驟來讓.py文件由任務處理程序運行,如新貴?
- 將家當作爲一線
#!/usr/bin/env python
- 允許執行權限
chmod 755
- 開始與超級用戶權限的守護程序(以絕對確保沒有任何權限限制阻止其啓動)
- 確保所有的Python庫那裏!
- 還有別的嗎?
解決: 問題是缺少蟒蛇依賴。通過任務管理器啓動腳本時(例如upstart
或start-stop-daemon
),不會引發錯誤。需要絕對確定pythonpath包含你需要的一切。
嘗試運行級別235並形成你運行服務器的用戶你使用4000權限的端口,這需要管理員的權限。 – Denis
我以超級用戶身份運行它,並將運行級別更改爲235並沒有幫助。 – and3p
您的應用程序的依賴項服務可能尚未啓動嗎?像一些數據庫? – tdihp