内网安装Supervisor服务并用非root账户启动

特别备注:安装过程采用 root 安装 supervisor 采用 www 用户启用

一、下载所需安装包

下载如下的安装包,并上传到内网指定的服务器目录内,执行

  1. Python2.7(必须) 下载.taz 解压指令:tar xzf Python-2.7.18.tgz
  2. meld3-2.0.1(必须) 下载.tar.gz 解压指令 tar xzf meld3-2.0.1.tar.gz
  3. setuptools-41.6.0(必须) 下载.zip 解压指令 unzip setuptools-41.6.0.zip
  4. supervisor-4.2.5(必须) 下载.tar.gz 解压指令 tar xzf supervisor-4.2.5.tar.gz
  5. pip-20.3.4(可选,因为内网你也用不了,独立安装的服务能用到) 下载.tar.gz 解压指令: tar xzf pip-20.3.4.tar.gz

二、安装

我们安装的前提是上面的文件全部解压并且放到了指定目录

  1. 安装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
  2. 安装 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
  3. 安装 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
  4. 安装 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
  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

四、增加需要的系统软连接服务

  1. supervisordsupervisorctl 命令
    # 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`
  2. 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 协议》,转载必须注明作者和本文链接
每天一点小知识,到那都是大佬,哈哈
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!