用 supervisord 管理进程

经常会碰到要写一些守护进程,常用做法放入后台:

nohup php taskDispatchSlave.php &

一个两个这样还可以管理,多个就麻烦了。
那天再找gearman的例子,发现一个 supervisord 的工具,相当好用,这个软件是python写的。
supervisor官方地址:http://supervisord.org,官方标语就是:一个进程管理工具。

ubuntu: sudo apt-get install supervisor
rehl/centos: easy_install supervisor or yum install supervisor
ps:如果没有 easy_install 命令先安装 sudo yum install python-pip 再执行上面的命令

我这里用的 centos:  easy_install supervisor 安装好后。

输入 echo_supervisord_conf >  /etc/supervisord.conf

在最后一行加入

[program:myworker]
command=/usr/local/php/bin/php /root/as/cli/taskDispatchSlave.php
process_name=%(program_name)s_%(process_num)02d
;修改numprocs即可同时开启多个worker进程
numprocs_start=3
numprocs=3
autostart=true
autorestart=true
;user=gearmand
stopsignal=KILL
stdout_logfile=/tmp/xxx_catch_slave.log

保存

/etc/supervisord.conf 跟多配置解释参考 http://supervisord.org/configuration.html#unix-http-server-section-settings

找到 inet_http_server 去掉注释

[inet_http_server] ; inet (TCP) server disabled by default
#port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)

port=192.168.6.36:9080
username=xxx ; (default is no username (open server))
password=xxx999 ; (default is no password (open server))

启动 supervisord

cmd:supervisord

WEB管理

supervisor web mangage
supervisor web mangage

cli 管理

输入 supervisorctl

supervisorctl>start myworker

supervisorctl>stop myworker

supervisorctl>restart myworker

如果改了配置,加入新的进程,要进行 reload 一次

supervisorctl 命令列更多看help

SPHINX搜索日志分析工具

使用PYTHON写出来的分析sphinx下query.log记录的日志分析工具,按搜索次数进行排名的工具。windows 测试通过。linux 下还没有测试,使用中有问题的可以留言。

python+sqlite 来做的,有些不足的地方。后面在改进。下面是下载地址:

http://code.google.com/p/qsyhcd/

python2.6以下要安装pysqlite 扩展包下载地址:

http://code.google.com/p/pysqlite/downloads/list

参数及命令行

sphnx 分析工具
sphnx 分析工具命令行参数
sphnx 分析工具

sphnx 分析工具命令行执行文件导入
sphnx 分析工具
通过-t=10 默认为10,可设置要排行的个数,
sphnx 分析工具
sphnx 分析工具命令行参数 -t=10 默认为10,可以设置最高好多位。 -s 设置搜索时间开始范围? -e 设置搜索时间结束范围
sphnx 分析工具
通过 -export 导出为文件