内网安装Supervisor服务并用非root账户启动
特别备注:安装过程采用 root 安装 supervisor 采用 www 用户启用
一、下载所需安装包
下载如下的安装包,并上传到内网指定的服务器目录内,执行
- Python2.7(必须) 下载.taz 解压指令:
tar xzf Python-2.7.18.tgz
- meld3-2.0.1(必须) 下载.tar.gz 解压指令
tar xzf meld3-2.0.1.tar.gz
- setuptools-41.6.0(必须) 下载.zip 解压指令
unzip setuptools-41.6.0.zip
- supervisor-4.2.5(必须) 下载.tar.gz 解压指令
tar xzf supervisor-4.2.5.tar.gz
- pip-20.3.4(可选,因为内网你也用不了,独立安装的服务能用到) 下载.tar.gz 解压指令:
tar xzf pip-20.3.4.tar.gz
二、安装
我们安装的前提是上面的文件全部解压并且放到了指定目录
安装
Python2.7
(root 账户操作)cd Python-2.7.18/ # 配置安装到指定的目录内 ./configure --prefix=/usr/local/python2.7 # 执行完上面的配置会看下如下输出 #If you want a release build with all optimizations active (LTO, PGO, etc), #please run ./configure --enable-optimizations # 继续执行下面命令 make && make install # 看到如下结尾代表成功 #if test "xno" != "xno" ; then \ # case no in \ # upgrade) ensurepip="--upgrade" ;; \ # install|*) ensurepip="" ;; \ # esac; \ # ./python -E -m ensurepip \ # $ensurepip --root=/ ; \ #fi
配置全局python 软链接(我们需要共享给非root账户使用)
`ln -sf /usr/local/python2.7/bin/python2.7 /usr/local/bin/python` `ln -sf /usr/local/python2.7/bin/python2.7 /usr/bin/python`
我们在命令行输出
python --version
如下输出证明安装成功Python 2.7.18
安装
setuptools
工具cd setuptools-41.6.0/ python setup.py install # 看到如下输出代表成功 #Installed /usr/local/python2.7/lib/python2.7/site-packages/setuptools-41.6.0-py2.7.egg #Processing dependencies for setuptools==41.6.0 #Finished processing dependencies for setuptools==41.6.0
安装
meld3
工具cd meld3-2.0.1/ python setup.py install # 看到如下输入成功 #Installed /usr/local/python2.7/lib/python2.7/site-packages/meld3-2.0.1-py2.7.egg #Processing dependencies for meld3==2.0.1 #Finished processing dependencies for meld3==2.0.1
安装
supervisor
cd supervisor-4.2.5/ python setup.py install # 看到如下输出成功 #Using /usr/local/python2.7/lib/python2.7/site-packages/setuptools-41.6.0-py2.7.egg #Finished processing dependencies for supervisor==4.2.5
安装
pip
服务cd pip-20.3.4/ python setup.py install #检测到如下输出完成 #Installed /usr/local/python2.7/lib/python2.7/site-packages/pip-20.3.4-py2.7.egg #Processing dependencies for pip==20.3.4 #Finished processing dependencies for pip==20.3.4
三、修改Python目录权限
chown -R www:www /usr/local/python2.7
四、增加需要的系统软连接服务
supervisord
和supervisorctl
命令# supervisord ln -sf /usr/local/python2.7/bin/supervisord /usr/local/bin/supervisord # supervisorctl ln -sf /usr/local/python2.7/bin/supervisorctl /usr/local/bin/supervisorctl # 输入命令 `supervisord --version` #输出版本号 `4.2.5`
pip
命令ln -sf /usr/local/python2.7/bin/pip2.7 /usr/local/bin/pip pip --version #输出 #pip 20.3.4 from /usr/local/python2.7/lib/python2.7/site-packages/pip-20.3.4-py2.7.egg/pip (python 2.7)
五、配置supervisor 相关服务 (非root用户开启服务)
进入到目录 /usr/local/python2.7/bin
执行如下指令:
./echo_supervisord_conf > /etc/supervisord.conf
# 执行下面等待备用
mkdir -p /etc/supervisor/conf.d/
mkdir /var/run/supervisor
mkdir /var/log/supervisor
#修改权限,等后面切换到www 用户备用
chown -R www:www /etc/supervisor
chown -R www:www /etc/supervisord.conf
chown -R www:www /var/run/supervisor
chown -R www:www /var/log/supervisor
切换到 www
用户执行 vim /etc/supervisord.conf
修改如下位置的配置
[unix_http_server]
file=/var/run/supervisor/supervisor.sock ; the path to the socket file
[inet_http_server] ; inet (TCP) server disabled by default
port=127.0.0.1:9001 ; ip_address:port specifier, *:port for all iface
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10 ; # of main logfile backups; 0 means none, default 10
loglevel=info ; log level; default info; others: debug,warn,trace
pidfile=/var/run/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid
[supervisorctl]
serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL for a unix socket
# 加载文件 注释打开并修改
[include]
files = supervisor/conf.d/*.ini
调整完毕保存
六、编写主配置*.ini
文件
进入目录cd /etc/supervisor/conf.d/ && vim test.ini
[program:test]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/bash /app/www/test.sh
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www
numprocs=8
redirect_stderr=true
stdout_logfile=/app/www/wwwlogs/test.log
stopwaitsecs=3600
七、启动
在www用户下执行: supervisord -c /etc/supervisord.conf
本作品采用《CC 协议》,转载必须注明作者和本文链接