supervisor介绍
关于supervisor的介绍这里摘取了廖老师的博客内容
Linux的后台进程运行有好几种方法,例如nohup,screen等,但是,如果是一个服务程序,要可靠地在后台运行,我们就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启。
supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
另外,supervisor有两个部分,分别对应服务端supervisord
和客户端工具supervisorctl
。只有启动了服务端supervisord
后才能使用supervisor进行其他进程的管理。 而客户端supervisorctl
就是supervisor提供的供用户进行管理的工具。
supervisor的安装与配置
supervisor是一个python库,因而其安装也很方便,只需要执行pip install supervisor
即可。
至于配置,可以通过supervisor提供的echo_supervisord_conf > /etc/supervisor/supervisor.conf
来生成supervisor配置文件,如需要定义只需要修改其就可以了。
一般会在配置文件中修改include部分,方便将需要管理的进程写成配置文件,以供supervisor管理
[include]
files = /etc/supervisor/conf.d/*.conf
这样配置后只需要在/etc/supervisor/conf.d
目录下面添加conf后缀文件,然后执行supervisorctl update
则supervisor就会将新增加的配置文件对应的进程管理起来。
另外,supervisor默认的日志文件输出目录为/var/log/supervisor
,它管理的进程如果没有将日志重定向的话,则默认以program-stdout-xxxx.log
和program-stderr-uuid.log
存在。 可以在程序配置文件中通过配置stdout_logfile=/path/tofile
来进行配置。配置文件中配置以将日志重定向有个好处就是避免了supervisord服务重启时日志文件被清空的问题。
tomcat配置文件
[program:tomcat]
command=/usr/share/tomcat7/bin/catalina.sh run
startsecs=5
stopsignal=INT
user=tomcat7
其实在这样配置前,最好在终端terminal中执行下/usr/share/tomcat7/bin/catalina.sh run
,看有没有错误。 如果没有错误,那恭喜你可以直接使用supervisor管理tomcat了,但是在我使用过程中有一些错误,进行了如下操作
ln -s /etc/tomcat7 /usr/share/tomcat7/conf
ln -s /var/lib/tomcat7/common /usr/share/tomcat7/common
ln -s /var/lib/tomcat7/server /usr/share/tomcat7/server
ln -s /var/lib/tomcat7/shared /usr/share/tomcat7/shared
ln -s /var/lib/tomcat7/webapps /usr/share/tomcat7/webapps
ln -s /var/cache/tomcat7 /usr/share/tomcat7/work