簡體   English   中英

Python / Flask 后台進程死機

[英]Python / Flask background process dies

注意。 這是問題的轉貼。 我的原始帖子已關閉,因為有人認為我問我如何配置 Flask 應用程序以用於生產或在后台運行。 這不是問題。 問題是為什么 python 后台進程突然死掉了。

我正在使用以下命令行在 Ubuntu(使用開發服務器)上運行 Flask 應用程序:

python myflaskapp.py > log.txt 2>&1 &

在我注銷 ssh session 之后 - 它運行了一段時間但突然進程停止了。 也沒有導致它的請求。 它只是死了。 該應用程序非常簡單。 沒有數據庫連接或任何東西。 它只是接收一些文件上傳並使用 XLRD 將其轉換為 csv。 但是即使沒有請求發送給它,它也會在一段時間后死亡。

任何想法是什么原因造成的? 有什么辦法記錄嗎? log.txt 中也沒有顯示正在發生的事情的日志條目。

我知道我不應該為生產運行開發服務器,而且我現在也在 gunicorn 中運行它 - 但我真的很想知道為什么 Python 進程會死掉。

我有另一個 Flask 應用程序,那個應用程序“永遠存在”。 它以相同的方式構建 - 但該過程將一直存在,直到計算機啟動或發生一些未處理的異常。

我想我在這里找到了問題。 一段時間后,systemd 似乎正在殺死 session - 即使在后台運行該進程。

有(至少)兩種解決方案:

  • 在 logind.conf 中設置 KillUserProcesses=No
  • 改為作為 systemd 服務運行

https://fedoraproject.org/wiki/Changes/KillUserProcesses_by_default

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM