日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python生产脚本_生产级部署 Python 脚本,日志收集、崩溃自启,一键搞定

發布時間:2025/4/5 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python生产脚本_生产级部署 Python 脚本,日志收集、崩溃自启,一键搞定 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方"

承香墨影

",選擇“置頂或星標”

第一時間接收最新消息

今天介紹一個生產級的流程管理工具 PM2,通常我們說到 PM2 的時候,都是在說如何部署 Node.js 程序,但是實際上 PM2 很強大,不僅僅可以用來管理 Node.js,它還可以用來管理 Python、 PHP 、 Ruby 、perl 等等。

這里就以 Python 舉例子,來看看 PM2 如何部署管理 Python 腳本。

PM2-Python

PM2 是一個生產級流程管理器,可以輕松管理后臺進程,在 Python 的世界中,PM2 是可以和 Supervisord 相媲美的,并且 PM2 還有一些非常棒的功能。

使用 PM2,讓崩潰重啟、觀察、檢查日志甚至部署應用程序,都變的簡單,并且 PM2 非常重視在命令行界面的操作體驗,因此 PM2 非常易于使用和掌握。

PM2 發展到今天,已經 5 年了,在 Github 上有超過 6500w 次下載,已經成為在生產 服務器 中運行 Node.js 的首選方式之一。但是它也支持 Python。

安裝 PM2

PM2 依賴于 Node.js,所以需要提前安裝 Node,這一步非常簡單:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

sudo apt-get install -y nodejs

其他平臺如何安裝 Node.js,可自行查找教程。

有了 Node 的環境后,就可以通過 npm 來安裝 PM2 了。

$ sudo npm install pm2 -g

要初始化 PM2 ,可以使用 pm2 ls 命令,此時就可以看到一個很友好的界面。

現在,已經成功安裝好 PM2 了,讓我們啟動一個 Python 應用吧。

啟動 Python

使用 PM2 啟動應用非常的簡單,它講根據腳本擴展自動匹配解釋器,用以運行指定的應用程序。

我們先創建一個簡單的 Python 應用程序,例如:hello.py。

#!/usr/bin/python

import time

while 1:

print("Start: %s" % time.ctime())

time.sleep(1)

我們有了一個簡單的 Python 腳本,接下來我們就用 PM2 去啟動它。

$ pm2 start hello.py

然后在 Terminal 里就可以看到該進程了。

到這一步,這個 Python 程序就將永遠的運行下去,這意味著如果該進程退出或者拋出異常,它將被自動重啟。

此處的 mode 為 fork,也就是關閉當前的 Terminal 窗口,它依然可以檢查到此應用的狀態。

想要查看 PM2 運行管理的應用程序,可以使用 pm2 ls 命令進行查看。

檢查日志

通過 PM2 運行的程序,如果想要查看 Log,可以輸入 pm2 logs 命令。

如果想要指定查看某個進程的 Log,可以使用 pm2 logs 進行指定。

另外 PM2 還提供了自動化的日志輪換功能,但是需要安裝 pm2-logrotate

$ pm2 install pm2-logrotate

pm2-logrotate 將提供每天日志輪換更新的功能,并保持總的日志控件大小為 10M。

查看某進程的信息

想要查看當前使用 PM2 啟動的程序的詳細信息,可以使用 pm describe 命令進行查看。

在輸出中,可以看到日志文件的路徑,已經解釋器等信息。

管理 PM2 的進程狀態

介紹完啟動和查看日志,再看幾個簡單的管理命令。

1. 停止某個程序

$ pm2 stop hello

2. 重啟某個程序

$ pm2 restart hello

3. 從進程列表中停止和刪除某個程序

$ pm2 delete hello

更多的命令,可以直接查看官方文檔。

服務器重啟時,依然保持運行

使用 PM2 啟動 Python 程序之后,PM2 只能保證啟動的這個 Python 程序發生意外崩潰的時候,對他進行重啟。如果你希望在重啟服務器的時候,依然保持應用程序在線,則需要設置 init 腳本,用以告訴系統啟動 PM2 以及你的應用程序。

想讓 PM2 跟隨系統啟動,只需要運行此命令。

$ pm2 startup

startup 可以生成一個設置環境變量的命令。

?a?? - ?" - ?2018-09-19-13-05-39

復制/粘貼此命令的最后一行,執行后將在系統重啟時,自動啟動 PM2。

現在已經可以重啟 PM2 了,還需要告訴 PM2 那些進程狀態需要在重啟時保持不變,只需要輸入命令:

$ pm2 save

這將創建一個轉存文件,記錄當前由 PM2 管理的進程狀態,PM2 將在重啟時,按照之前的狀態恢復他們。

監聽 CPU/內存信息

要監聽 CPU/內存并檢查有關進程的一些信息,需要使用 pm2 monit 命令。

這將打開一個 termcaps 界面,允許試試了解正在運行的應用程序。

你還可以使用 pm2 show 獲取有關應用程序的所有可能信息。

使用 Ecosystem 文件

如果有多個程序需要啟動,或者在啟動的時候需要傳遞不同的參數、選項等,可以使用 ?eocsystem 文件對應用程序進行配置。

Eocsystem 需要通過 ecosystem.config.js 文件進行配置,此文件可以通過 pm2 init 命令生成。生成好后,我們可以在其中配置一些配置信息。

module.exports = {

apps : [{

name: 'echo-python',

cmd: 'hello.py',

args: 'arg1 arg2',

autorestart: false,

watch: true,

pid: '/path/to/pid/file.pid',

instances: 4,

max_memory_restart: '1G',

env: {

ENV: 'development'

},

env_production : {

ENV: 'production'

}

}, {

name: 'echo-python-3',

cmd: 'hello.py',

interpreter: 'python3'

}]

};

在這個例子中,我們聲明了兩個應用程序,通過 interpreter 配置程序啟動的解釋器,一個使用 Python2 (默認)運行,另一個使用 Python3 運行。

啟動它,依然使用 pm2 start 命令。

$ pm2 start ecosystem.config.js

想要單獨重啟 “production” (env_production):

$ pm2 restart ecosystem.config.js --env production

Ecosystem.config.js 文件中,很多配置都是可以通過命令來指定,例如,可以通過 --interpreter 來指定解析程序。

通常我們會同時安裝 Python2.x 和 Python3.x 的環境,而 PM2 在默認情況下,是通過腳本文件后綴來判斷的,如果沒有后綴就需要強制指定 --interpreter 。

{

".sh": "bash",

".py": "python",

".rb": "ruby",

".coffee" : "coffee",

".php": "php",

".pl" : "perl",

".js" : "node"

}

這些配置信息也標記了 PM2 支持的腳本程序。

那么如果需要使用 Python3.x 來執行某個腳本,就需要 --interpreter 了。

$ pm2 start hello.py --interpreter=python3

小結

PM2 的簡單使用,就先介紹到這里。雖然這里使用 Python 來舉例,但是本文所有相關命令,是可以適用其他 PM2 支持的腳本程序。

PM2 還有很多強大的功能,比如說利用 SSH 輕松部署到服務器、負載均衡等等都是一些不錯的功能,有興趣可以查閱文檔。PM2 文檔很健全,大部分問題都可以在文檔中找到答案。

有任何問題,歡迎在留言區討論,有用就分享吧,謝謝!

參考:

https://blog.pm2.io/managing-python-application-with-pm2

https://pm2.io/doc/en/runtime/quick-start/

「 聯機圓桌 」:point_left:推薦我的知識星球,一年 50 個優質問題,上桌聯機學習。

公眾號后臺回復成長『 成長 』,將會得到我準備的學習資料,也能回復『 加群 』,一起學習進步;你還能回復『 提問 』,向我發起提問。

推薦閱讀:

圖解 Chrome,架構篇 | 利用預處理腳本,管理小程序代碼 | 分詞,科普及解決方案 |圖解:HTTP 范圍請求 |小程序學習資料 |HTTP 內容編碼 |輔助模式實戰 |輔助模式玩出花樣 |小程序 Flex 布局

聽說喜歡 留言和分享 的人,會有好運來哦

點擊『 閱讀原文 』查看更多精彩內容

總結

以上是生活随笔為你收集整理的python生产脚本_生产级部署 Python 脚本,日志收集、崩溃自启,一键搞定的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人激情开心 | 中文字幕久久一区 | 色天天综合网 | 久久久久久国产精品视频 | 国产精品16p| 久久黄色| 日韩黄色av网站 | 欧美亚洲视频一区 | 日本成人一级片 | 免看黄大片aa | 黄色网址在线免费播放 | 婷婷婷色| 国内成人免费视频 | 中文字幕中出 | 成人777| 秋霞电影一区二区 | 无码人妻精品一区二区蜜桃视频 | 91视频久久久久 | 中文字幕欧美专区 | 日本午夜大片 | 国产成人无码精品久久久电影 | 欧美日韩一区二区三区视频 | 久久久久久久久久国产精品 | 成人午夜视频一区二区播放 | 不卡的日韩av| 久久久久久久久久久久久女过产乱 | 天天天天躁天天爱天天碰2018 | 99久久精 | 成人午夜免费电影 | 真实乱偷全部视频 | 免费在线日韩av | 国产在线一二 | 黄色片中文字幕 | 麻豆www.| 很黄的性视频 | 日韩女同强女同hd | 黄色片网站免费在线观看 | 中文字幕欧美激情 | 日韩人妻无码精品久久久不卡 | 欧美黄色大片免费观看 | 国产精品7777777 | 波多野结衣精品在线 | 日韩精品久久久久久久的张开腿让 | 色屁屁一区二区三区 | 蜜臀久久99精品久久久久久宅男 | 色综合久久网 | 一级片免费 | 无码人妻精品一区二区三区在线 | 日韩av图片 | 亚洲一卡二卡在线观看 | 国产精品www在线观看 | 小sao货大ji巴cao死你 | 国产一区二区三区免费看 | 国产精品一区二区三区在线看 | 色综合视频网 | 国产欧美久久一区二区三区 | 男人的天堂免费 | 欧洲一区二区在线 | 婷婷六月天 | 午夜视 | 深夜影院在线观看 | 日本韩国中文字幕 | 日大逼| 日韩一区二区三区免费 | 激情午夜天 | 97成人免费 | 国产日韩av一区二区 | 日韩一区二区中文字幕 | 黄色在线视频网站 | 手机av网址 | 久草三级 | 美女网站在线看 | 中国美女一级片 | 丰满人妻一区二区三区53视频 | 欧美色性视频 | 影音先锋二区 | 全部免费毛片在线播放高潮 | 超碰免费看 | 美女福利视频 | 伊人久久爱 | 成人精品电影 | 国产精品无码99re | 夜夜添无码一区二区三区 | 超碰在线最新 | 91在线免费网站 | 91黄视频在线观看 | 国产精品扒开腿做爽爽爽视频 | 依依激情网 | 亚洲成人av在线播放 | www国产精品内射熟女 | 国产手机在线 | 久久精选 | 丁香六月色婷婷 | 日本免费一区二区三区最新 | 一级毛片基地 | 天天夜夜操| 国产福利在线看 | 操操网站 | 香蕉网站在线 |