linux服務(wù)器安裝supervisor全過(guò)程
在 Linux 服務(wù)器上安裝和配置 Supervisor(一個(gè)用于進(jìn)程管理的工具,常用于守護(hù)長(zhǎng)時(shí)間運(yùn)行的程序)的步驟如下:
1. 安裝 Supervisor
RHEL/CentOS/Fedora
# 啟用 EPEL 倉(cāng)庫(kù)(CentOS/RHEL) sudo yum install epel-release # CentOS 7 或更早 sudo dnf install epel-release # CentOS 8+/Fedora # 安裝 Supervisor sudo yum install supervisor # CentOS 7 sudo dnf install supervisor # CentOS 8+/Fedora
Debian/Ubuntu
sudo apt update sudo apt install supervisor
通過(guò) Python pip 安裝(通用方法)
如果系統(tǒng)包管理器沒(méi)有 Supervisor,可以用 pip 安裝:
sudo apt install python3-pip # Debian/Ubuntu sudo yum install python3-pip # CentOS/RHEL sudo pip3 install supervisor
2. 啟動(dòng) Supervisor 服務(wù)
Systemd 系統(tǒng)(CentOS 7+/Ubuntu 16.04+)
# 啟動(dòng) Supervisor sudo systemctl start supervisord # 設(shè)置開(kāi)機(jī)自啟 sudo systemctl enable supervisord # 檢查狀態(tài) sudo systemctl status supervisord
3. 配置 Supervisor
Supervisor 的主配置文件通常位于:
/etc/supervisord.conf(主配置文件)/etc/supervisor/conf.d/(子配置文件目錄)
; Sample supervisor config file. [unix_http_server] file=/etc/supervisor/supervisor.sock ; (the path to the socket file) [supervisord] logfile=/var/log/supervisord.log ; (main log file;default $CWD/supervisord.log) logfile_maxbytes=50MB ; (max main logfile bytes b4 rotation;default 50MB) logfile_backups=10 ; (num of main logfile rotation backups;default 10) loglevel=info ; (log level;default info; others: debug,warn,trace) pidfile=/etc/supervisor/supervisord.pid ; (supervisord pidfile;default supervisord.pid) nodaemon=false ; (start in foreground if true;default false) minfds=65535 ; (min. avail startup file descriptors;default 1024) minprocs=4096 ; (min. avail process descriptors;default 200) [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///etc/supervisor/supervisor.sock ; 默認(rèn)是配置在 /tmp 目錄下,避免長(zhǎng)時(shí)間未使用導(dǎo)致文件被刪除,建議修改為 /etc/superviosr的目錄下 [include] files = /home/workspace/*/shell/supervisor.conf ;默認(rèn)加載路徑可以自己定義
示例:配置一個(gè) Python 腳本(如myapp.py)
創(chuàng)建子配置文件:
sudo vi /etc/supervisor/conf.d/myapp.conf
添加以下內(nèi)容:
[program:myapp] command=/usr/bin/java -jar /path/to/myapp.jar # 替換為你的命令 directory=/path/to/ # 工作目錄(可選) user=root # 運(yùn)行用戶(hù)(可選) autostart=true # 隨 Supervisor 啟動(dòng) autorestart=true # 崩潰時(shí)自動(dòng)重啟 stderr_logfile=/home/logs/appname/myapp.err.log # 錯(cuò)誤日志 stdout_logfile=/home/logs/appname/myapp.out.log # 輸出日志 environment=HOME="/home/user",USER="user" # 環(huán)境變量(可選)
檢查配置語(yǔ)法:
sudo supervisord -c /etc/supervisord.conf # 或 sudo supervisorctl reread sudo supervisorctl update
4. 管理 Supervisor 進(jìn)程
使用supervisorctl命令
# 查看所有進(jìn)程狀態(tài) sudo supervisorctl status # 啟動(dòng)/停止/重啟某個(gè)進(jìn)程 sudo supervisorctl start myapp sudo supervisorctl stop myapp sudo supervisorctl restart myapp # 重新加載所有配置(新增/修改配置后) sudo supervisorctl reread sudo supervisorctl update # 查看日志 sudo supervisorctl tail myapp stderr # 查看錯(cuò)誤日志 sudo supervisorctl tail myapp stdout # 查看輸出日志
5. 日志管理
- 主日志:
/var/log/supervisor/supervisord.log - 子進(jìn)程日志:在配置文件中指定的
stderr_logfile和stdout_logfile。
6. 開(kāi)機(jī)自啟(可選)
如果 Supervisor 沒(méi)有自動(dòng)啟動(dòng),可以手動(dòng)設(shè)置:
Systemd
sudo systemctl enable supervisord
7. 卸載 Supervisor(如需)
RHEL/CentOS/Fedora
sudo systemctl stop supervisord sudo yum remove supervisor sudo rm -rf /etc/supervisor /var/log/supervisor
Debian/Ubuntu
sudo systemctl stop supervisord sudo apt purge supervisor sudo rm -rf /etc/supervisor /var/log/supervisor
總結(jié)
- 安裝:
yum/apt/pip install supervisor - 啟動(dòng):
systemctl start supervisord - 配置:在
/etc/supervisor/conf.d/下添加.conf文件 - 管理:
supervisorctl start/stop/restart <程序名> - 日志:查看
/var/log/supervisor/或配置的日志路徑
Supervisor 適合管理長(zhǎng)時(shí)間運(yùn)行的進(jìn)程(如 Web 應(yīng)用、隊(duì)列任務(wù)等),比直接使用 nohup 或 & 更可靠!
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux使用scp實(shí)現(xiàn)服務(wù)器A向服務(wù)器B傳輸文件
這篇文章主要介紹了linux使用scp實(shí)現(xiàn)服務(wù)器A向服務(wù)器B傳輸文件的相關(guān)資料,需要的朋友可以參考下2016-04-04
CentOS搭建PHP服務(wù)器環(huán)境簡(jiǎn)明教程
這篇文章主要介紹了CentOS搭建PHP服務(wù)器環(huán)境的方法,簡(jiǎn)單講述了CentOS平臺(tái)安裝Apache、mysql、php環(huán)境及相關(guān)測(cè)試代碼,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2018-03-03
Centos7升級(jí)glibc導(dǎo)致系統(tǒng)異常(無(wú)法開(kāi)機(jī))解決方法
大家好,本篇文章主要講的是Centos7升級(jí)glibc導(dǎo)致系統(tǒng)異常(無(wú)法開(kāi)機(jī))解決方法,感興趣的同學(xué)趕快來(lái)看看吧,希望對(duì)你有幫助2021-11-11
Linux命令學(xué)習(xí)總結(jié)之rmdir命令
這篇文章主要介紹了Linux命令學(xué)習(xí)總結(jié)之rmdir命令的相關(guān)資料,需要的朋友可以參考下2016-01-01
從0開(kāi)始簡(jiǎn)單部署騰訊云服務(wù)器的方法步驟
這篇文章主要介紹了從0開(kāi)始簡(jiǎn)單部署騰訊云服務(wù)器的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
在Linux上搭建本地Docker Registry并實(shí)現(xiàn)遠(yuǎn)程連接過(guò)程
本文介紹了如何使用DockerRegistry和cpolar實(shí)現(xiàn)本地鏡像倉(cāng)庫(kù)的遠(yuǎn)程pull和push操作,不受本地局域網(wǎng)限制,步驟包括部署DockerRegistry、本地測(cè)試推送鏡像、安裝和配置cpolar內(nèi)網(wǎng)穿透工具、創(chuàng)建公網(wǎng)訪(fǎng)問(wèn)地址、配置固定公網(wǎng)地址等2025-12-12
LNMP系列教程之 設(shè)置404錯(cuò)誤頁(yè)面
在之前的文章中分享到”設(shè)置301重定向的方法“文章,提到301,那肯定也要說(shuō)說(shuō)404錯(cuò)誤頁(yè)面吧。因?yàn)槲覀兡J(rèn)安裝了LNMP后404頁(yè)面不會(huì)自動(dòng)設(shè)置,也不會(huì)默認(rèn)到程序的404錯(cuò)誤頁(yè)面,而需要我們手工設(shè)置2012-09-09
linux下如何把進(jìn)程/線(xiàn)程綁定到特定cpu核上運(yùn)行
這篇文章主要介紹了linux下如何把進(jìn)程/線(xiàn)程綁定到特定cpu核上運(yùn)行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08

