Supervisor python2 环境。官方还没有出py3的版本,不过不影响管理py3的进程。 supervisord 提供实际的服务,服务端 supervisorctl 命令行解释器,客户端
安装 ubuntu 18.04 bionic sudo apt update sudo apt install python-pip 使用 root 用户安装 pip install supervisor Note: after install, need reconnect ssh terminal otherwise cannot find the supervisor not root user install path this will cause start problem: /home/ubuntu/.local/bin/ /home/ubuntu/.local/lib/python2.7/site-packages/supervisor
配置 生成一份配置文件 echo_supervisord_conf > /etc/supervisord.conf echo_supervisord_conf > supervisord.conf supervisord -c supervisord.conf sudo chmod -R 777 /var/log/supervisor 修改下面的配置 [supervisord] logfile=/var/log/supervisor/supervisord.log pidfile=/home/tyler/supervisor/supervisord.pid 修改下面配置,指定一个项目配置项的目录 [include] files = /home/tyler/supervisor/*.conf 如果需要打开web管理支持,修改下面配置 ; 必须和'unix_http_server' 里面的设定匹配 [supervisorctl] serverurl=unix:///home/tyler/supervisor/supervisor.sock ; use a unix:// URL for a unix socket [unix_http_server] ;修改为 /home/supervisor 目录,避免被系统删除 file=/home/tyler/supervisor/upervisor.sock ; the path to the socket file 然后在制定的目录里面新建配置文件 参考如下: [program:gunicorn] command=/Library/anaconda/envs/flaskPy3/bin /gunicorn mailServerStudy:app -p mailServerStudy.pid -c gunicorn_config.py directory=/Users/zhengjun/project/PycharmProjects/mailService/app/ startsecs=5 stdout_logfile=/var/log/supervisor/%(program_name)s.log stderr_logfile=/var/log/supervisor/%(program_name)s.log autorestart=true autostart = true ; 在 supervisord 启动的时候也自动启动
tomcat config find tomcat process
ps -ef |grep tomcat output: sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start 说明tomcat已经正常启动, 5144 就为进程号 pid = 5144 manual operation bin/startup.sh #启动tomcat bin/shutdown.sh #停止tomcat
[program:tomcat] command=/servers/apache-tomcat-8.5.34/bin/catalina.sh run environment=JAVA_HOME="/servers/jdk1.8.0_181/",JAVA_BIN="/servers/jdk1.8.0_181/bin" directory=/servers/apache-tomcat-8.5.34 autostart = true autorestart=true redirect_stderr=true stdout_logfile=/servers/apache-tomcat-8.5.34/logs/%(program_name)s.log stdout_logfile_maxbytes=0 stderr_logfile=/servers/apache-tomcat-8.5.34/logs/%(program_name)s.log
启动服务 supervisord -c supervisord.conf supervisord -c /home/ubuntu/supervisor/supervisord.conf
问题: Error: Another program is already listening on a port that one of our HTTP servers is configured to use 答案:
find / -name supervisor.sock unlink /***/supervisor.sock
查看是否运行ps aux|grep supervisord
常用命令 supervisorctl status supervisorctl stop all supervisorctl stop gisServer supervisorctl start gisServer supervisorctl restart gunicorn 修改配置文件后需要执行 supervisorctl reread supervisorctl update
访问web管理 127.0.0.9010
自动启动 配置systemctl服务 进入/lib/systemd/system目录,并创建supervisord.service文件
[Unit] Description=supervisor After=network.target [Service] Type=forking ExecStart=/home/ubuntu/.local/bin/supervisord -c /servers/supervisor/supervisord.conf ExecStop=/home/ubuntu/.local/bin/supervisorctl $OPTIONS shutdown ExecReload=/home/ubuntu/.local/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
设置开机启动 激活开机启动命令 sudo chmod 766 supervisord.service sudo systemctl enable supervisord.service sudo systemctl daemon-reload
sudo systemctl disable supervisord.service
sudo systemctl start supervisord.service sudo systemctl stop supervisord.service sudo systemctl reload supervisord.service sudo systemctl status supervisord.service
sudo systemctl start supervisord.service Starting supervisord: Traceback (most recent call last): File "/usr/bin/supervisord", line 2, in <module> from supervisor.supervisord import main ImportError: No module named supervisor.supervisord 说是 python 版本的问题,为啥装到这个位置,奇怪 #!/usr/bin/python /home/ubuntu/.local/lib/python2.7/site-packages/supervisor 使用 sudo -i 切换到 root 用户安装一下,就可以了。
// 查看错误journalctl -xe