<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[腾讯服务器监控nginx进程，自动拉起]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Mon, 21 Oct 2013 02:48:10 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	其实就是一个ps进程探测， <br/>后面写一个分析 <br/>文件先贴出来。 <br/>Monitor.sh代码<br/><textarea name="code" class="C" rows="15" cols="100">
#! /bin/sh

###file_ver=2.0.3

PATH=$PATH:.

#monitor the application
#create by leonlaili,2006-12-6

####### Custom variables begin&nbsp;&nbsp;########
##todo: add custom variables here
#get script path
dir_pre=$(dirname $(which $0))
####### Custom variables end&nbsp;&nbsp;&nbsp;&nbsp;########

#load common functions
load_lib()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;common_file=$dir_pre/common.sh
&nbsp;&nbsp;&nbsp;&nbsp;if [ -f $common_file ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;. $common_file
&nbsp;&nbsp;&nbsp;&nbsp;fi
&#125;

#check current user
check_user()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;if [ &quot;$user&quot; != &quot;`whoami`&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;Only $user can execute this script&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 1
&nbsp;&nbsp;&nbsp;&nbsp;fi
&#125;

#print help information
print_help()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;##todo: output help information here
&nbsp;&nbsp;&nbsp;&nbsp;# echo ....
&nbsp;&nbsp;&nbsp;&nbsp;return 
&#125;

#check script parameters
check_params()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;ok=&quot;true&quot;
&nbsp;&nbsp;&nbsp;&nbsp;##todo: add addition parameters checking statement here...
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;if [ &quot;$ok&quot; != &quot;true&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;Some of the parameters are invalid. &quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print_help
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit 1
&nbsp;&nbsp;&nbsp;&nbsp;fi
&#125;

get_app_num()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;numbers=`echo $app_name &#124; sed -e &quot;s:[ &#92;t]:&#92;n:g&quot; &#124; grep &quot;^$1[:$]&quot; &#124; awk -F: &#039;&#123;print $2&#125;&#039;`
&nbsp;&nbsp;&nbsp;&nbsp;num1=`echo $numbers&#124;awk -F, &#039;&#123;print $1&#125;&#039;`
&nbsp;&nbsp;&nbsp;&nbsp;num2=`echo $numbers&#124;awk -F, &#039;&#123;print $2&#125;&#039;`

&nbsp;&nbsp;&nbsp;&nbsp;if [ &quot;$&#123;num1&#125;&quot; = &quot;&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num1=1
&nbsp;&nbsp;&nbsp;&nbsp;fi

&nbsp;&nbsp;&nbsp;&nbsp;if [ &quot;$&#123;num2&#125;&quot; = &quot;&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num2=999999999
&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;
&#125;

#check port
check_port()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;nc_cmd=&quot;/usr/bin/nc&quot;
&nbsp;&nbsp;&nbsp;&nbsp;if [ ! -f $nc_cmd ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nc_cmd=&quot;/usr/bin/netcat&quot;
&nbsp;&nbsp;&nbsp;&nbsp;fi

&nbsp;&nbsp;&nbsp;&nbsp;$nc_cmd -zn -w4 $1 $2
&nbsp;&nbsp;&nbsp;&nbsp;if [ $? -ne 0 ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (( i=0 ; i&lt;5 ; i++ ))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nc_cmd -zn -w4 $1 $2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ $? -eq 0 ];then return 0;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#check VIP again
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ &quot;$vip&quot; != &quot;&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (( i=0 ; i&lt;5 ; i++ ))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$nc_cmd -zn -w4 $vip $2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if [ $? -eq 0 ];then return 0;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;done
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;err_port=&quot;$err_port $p&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1 
&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;return 0
&#125;

#check process
check_process()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;get_app_num $1
&nbsp;&nbsp;&nbsp;&nbsp;app=`echo $1 &#124; awk -F: &#039;&#123;print $1&#125;&#039;`
&nbsp;&nbsp;&nbsp;&nbsp;num=`ps -C $app &#124; sed -e &quot;1d&quot; &#124; wc -l`
&nbsp;&nbsp;&nbsp;&nbsp;if [ $num -lt $num1 -o $num -gt $num2 ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;err_app=&quot;$err_app $app&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 1
&nbsp;&nbsp;&nbsp;&nbsp;fi
&nbsp;&nbsp;&nbsp;&nbsp;return 0
&#125;

#check if application is ok
check_app()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;if [ ! -f $runing_file ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return 0
&nbsp;&nbsp;&nbsp;&nbsp;fi

&nbsp;&nbsp;&nbsp;&nbsp;if [ &quot;$ip_type&quot; = &quot;0&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bind_ip=$ip_inner
&nbsp;&nbsp;&nbsp;&nbsp;elif [ &quot;$ip_type&quot; = &quot;1&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bind_ip=$ip_outer
&nbsp;&nbsp;&nbsp;&nbsp;elif [ &quot;$ip_type&quot; = &quot;2&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bind_ip=&quot;0.0.0.0&quot;
&nbsp;&nbsp;&nbsp;&nbsp;elif [ &quot;$ip_type&quot; = &quot;3&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bind_ip=$vip
&nbsp;&nbsp;&nbsp;&nbsp;elif [ &quot;$ip_type&quot; = &quot;4&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bind_ip=127.0.0.1
&nbsp;&nbsp;&nbsp;&nbsp;fi 
 
&nbsp;&nbsp;&nbsp;&nbsp;##todo: add application checking statement here
&nbsp;&nbsp;&nbsp;&nbsp;err_app=&quot;&quot;
&nbsp;&nbsp;&nbsp;&nbsp;err_port=&quot;&quot;

&nbsp;&nbsp;&nbsp;&nbsp;run_config &quot;monitor&quot;

&#125;

#resolve the problems of application
resolve_app()
&#123;

&nbsp;&nbsp;&nbsp;&nbsp;#发送告警信息
&nbsp;&nbsp;&nbsp;&nbsp;report &quot;Monitor: restart [process:$&#123;err_app&#125;][port:$&#123;err_port&#125;]&quot;

&nbsp;&nbsp;&nbsp;&nbsp;##todo: add custom statement here

&nbsp;&nbsp;&nbsp;&nbsp;run_config &quot;resolve&quot;

&nbsp;&nbsp;&nbsp;&nbsp;return
&#125;

#report monitor result infomation
rpt_info()
&#123;
&nbsp;&nbsp;&nbsp;&nbsp;local rtype=&quot;$1&quot;
&nbsp;&nbsp;&nbsp;&nbsp;local elem=&quot;$2&quot;
&nbsp;&nbsp;&nbsp;&nbsp;local action=&quot;$3&quot;
&nbsp;&nbsp;&nbsp;&nbsp;report_ip=172.16.211.50
&nbsp;&nbsp;&nbsp;&nbsp;url_head=&quot;http://$report_ip/pkg/monitor_rpt.php&quot;
&nbsp;&nbsp;&nbsp;&nbsp;response_file=&quot;/tmp/.monitor_report.tmp&quot;
&nbsp;&nbsp;&nbsp;&nbsp;wget_options=&quot;-T 10 -O $response_file --connect-timeout=5&quot;
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;wget $wget_options &quot;$&#123;url_head&#125;?ip=$&#123;ip_inner&#125;&amp;install_path=$&#123;install_path&#125;&amp;type=$&#123;rtype&#125;&amp;elem=$&#123;elem&#125;&amp;action=$&#123;action&#125;&quot; &gt; /dev/null 2&gt;&amp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;rm $response_file 2&gt;/dev/null
&#125;


###### Main Begin ########
if [ &quot;$1&quot; = &quot;--help&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;print_help
&nbsp;&nbsp;&nbsp;&nbsp;exit 0
fi

load_lib
check_user
check_params
check_app
if [ &quot;$err_app&quot; != &quot;&quot; -o &quot;$err_port&quot; != &quot;&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;resolve_app
fi

if [ &quot;$err_app&quot; != &quot;&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;err_app_list=`echo &quot;$err_app&quot; &#124; sed -e &#039;s/ /,/g&#039; -e &#039;s/^,//&#039; -e &#039;s/,$//&#039;`
&nbsp;&nbsp;&nbsp;&nbsp;rpt_info &#039;app&#039; &quot;$err_app_list&quot; &quot;restart&quot;
fi

if [ &quot;$err_port&quot; != &quot;&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;err_port_list=`echo &quot;$err_port&quot; &#124; sed -e &#039;s/ /,/g&#039; -e &#039;s/^,//&#039; -e &#039;s/,$//&#039;`
&nbsp;&nbsp;&nbsp;&nbsp;rpt_info &#039;port&#039; &quot;$err_port_list&quot; &quot;restart&quot;
fi
###### Main End&nbsp;&nbsp; ########


</textarea><br/><br/>Init.xml代码：<br/><textarea name="code" class="C" rows="15" cols="100">
framework_ver=2.0.7
&lt;!--程序包基本信息--&gt;
&lt;base_info&gt;
#程序作者
author=&quot;funnychen&quot;
#所属产品
product=&quot;third&quot;
#模块
module=&quot;&quot;
#软件包名称
name=&quot;nginx&quot;
#进程名不能超过15字符,多个进程空格间隔,可指定进程数量.app:min,max,如app_name:1,20
app_name=&quot;nginx&quot;
#进程监听TCP端口!仅限TCP端口,多个端口使用空格间隔
port=&quot;80&quot;
#TCP端口绑定ip类型!仅限TCP端口 0:内网;1:外网;2:0.0.0.0;3:VIP;4:127.0.0.1
ip_type=&quot;2&quot;
#软件包版本
version=&quot;0.7.67&quot;
#所属用户
user=&quot;root&quot;
#停止进程信号量
kill_sig=&quot;KILL&quot;
#是否开机启动[0&#124;1]
auto_start=&quot;1&quot;
#开机启动脚本存放文件
boot_path=&quot;/usr/local/services/etc/svc.sh&quot;
#日志目录(日志直接存放在安装目录请设为空)
log_dir=&quot;/data/log/$name-$version&quot;
#告警特性ID(默认不需要修改)
rpt_port=&quot;5570&quot;
#基础安装目录(请勿修改)
install_base=&quot;/usr/local/services&quot;
#系统使用变量请勿修改
install_path=&quot;/usr/local/services/nginx-0.7.67&quot;
#是否强制在老目录安装(请勿修改)
force_install=&quot;false&quot;
&lt;/base_info&gt;

&lt;!--安装时创建文件链接--&gt;
&lt;link&gt;
cd $install_path
ln -s log logs

rm /usr/local/nginx 2&gt;/dev/null
ln -s $install_path /usr/local/nginx
&lt;/link&gt;







&lt;!--程序启动方式，请使用相对bin目录的路径--&gt;
&lt;start&gt;
#限制core文件大小为4k,用于进程coredump监控
ulimit -c 4 -S
ulimit -n 100001

#-----单进程名程序包请在这添加启动命令-----
./nginx

#-----多进程名程序包请在这添加启动命令-----
#每个进程复制一份if语句，注意保留if判断逻辑并修改内部的示例进程名app_test
#变量app_to_start为需要启动的进程名,不需要修改
#if [ &quot;$app_to_start&quot; = &quot;app_test&quot; -o &quot;$app_to_start&quot; = &quot;all&quot; ];then
#&nbsp;&nbsp;&nbsp;&nbsp;./app_test &amp;
#fi
&lt;/start&gt;



&lt;!--自定义crontab调度,请使用/usr/local/services/nginx-0.7.67占位符--&gt;
&lt;!--Example: &quot;0 0 * * * /usr/local/services/nginx-0.7.67/admin/start.sh &amp;&quot; --&gt;
&lt;crontab&gt;
*/3 * * * * /usr/local/services/nginx-0.7.67/admin/monitor.sh &gt; /usr/local/services/nginx-0.7.67/log/crontab.log 2&gt;&amp;1 &amp;
*/15 * * * * /usr/local/services/nginx-0.7.67/admin/clear.sh file &gt; /usr/local/services/nginx-0.7.67/log/crontab.log 2&gt;&amp;1 &amp;
15 8 * * * /usr/local/services/nginx-0.7.67/admin/md5sum.sh check &gt; /usr/local/services/nginx-0.7.67/log/crontab.log 2&gt;&amp;1 &amp;
0 0 * * * /usr/local/services/nginx-0.7.67/tools/log_clear.sh &gt; /usr/local/services/nginx-0.7.67/log/log_clear.log 2&gt;&amp;1 &amp;
&lt;/crontab&gt;


&lt;!--程序停止方式--&gt;
&lt;stop&gt;
#停止进程后等待时间（秒）
sleep_count=1

#变量app_to_stop为需要启动的进程名

if [ $app_count -gt 1 -a &quot;$app_to_stop&quot; != &quot;all&quot; ];then
&nbsp;&nbsp;&nbsp;&nbsp;kill_app $app_to_stop $kill_sig
&nbsp;&nbsp;&nbsp;&nbsp;sleep $sleep_count
&nbsp;&nbsp;&nbsp;&nbsp;return
fi

for app_info in $app_name
do
&nbsp;&nbsp;&nbsp;&nbsp;app=`echo $app_info &#124; awk -F: &#039;&#123;print $1&#125;&#039;`
&nbsp;&nbsp;&nbsp;&nbsp;kill_app $app $kill_sig
&nbsp;&nbsp;&nbsp;&nbsp;sleep $sleep_count
done
&lt;/stop&gt;

&lt;!--程序状态检测，若检测异常则添加异常进程名到err_app或添加异常端口到err_port--&gt;
&lt;monitor&gt;
#进程数量检测
for app_info in `cat $runing_file`
do
&nbsp;&nbsp;&nbsp;&nbsp;check_process &quot;$app_info&quot;
done

#端口检测
for p in `echo $port`
do
&nbsp;&nbsp;&nbsp;&nbsp;check_port &quot;$bind_ip&quot; &quot;$p&quot;
done
&lt;/monitor&gt;

&lt;!--程序异常处理，根据状态检测是否正常决定--&gt;
&lt;resolve&gt;
for app in `echo $err_app`
do
&nbsp;&nbsp;&nbsp;&nbsp;$install_path/admin/restart.sh $app
done
&lt;/resolve&gt;

&lt;!--需要进行md5校验的文件列表，请使用相对安装目录的路径，带&quot;&lt;空格&gt;-&quot;后缀为不需要进行校验--&gt;
&lt;md5&gt;
bin/*
lib/*
admin/*
bin/*.pid -
bin/*core* -
bin/*.tmp -
bin/*.stat -
bin/*.log -
bin/*.data -
bin/*.dat -
bin/*.bin -
bin/*.info -
&lt;/md5&gt;

&lt;!--需要进行安装时替换内容的文件列表,请使用相对安装目录的路径--&gt;
&lt;substitute&gt;
init.xml
conf/*
etc/*
&lt;/substitute&gt;

&lt;!--数据清理配置--&gt;
&lt;clear_file&gt;
#目录&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#阀值&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#命令&nbsp;&nbsp;#参数 #目标
log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;85%:2000M&nbsp;&nbsp;&nbsp;&nbsp;tar&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;*.log
admin/data/backup&nbsp;&nbsp;90%:50M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tar&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;*
admin/data/tmp&nbsp;&nbsp;&nbsp;&nbsp; 90%:10M&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete 1&nbsp;&nbsp;&nbsp;&nbsp; *

#----说明-----
#目录：需要监控的目录，使用相对安装目录路径
#阀值：触发清理操作的条件[分区使用百分比:目录最大空间&lt;M&#124;m&gt;]
#命令：delete(删除指定时间前文件)，tar(压缩指定时间前文件)，clear(清空超过指定大小文件)
#参数：delete,tar(默认天数,后缀h为小时，m为分钟)，clear(文件大小k)
#目标：可以清理的文件,接受通配符

#----示例-----
#目录&nbsp;&nbsp;&nbsp;&nbsp; #阀值&nbsp;&nbsp;&nbsp;&nbsp;#命令&nbsp;&nbsp; #参数&nbsp;&nbsp;#目标
#log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;80%:10M&nbsp;&nbsp;delete&nbsp;&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp; stat*.log
#data&nbsp;&nbsp;&nbsp;&nbsp; 90%:10M&nbsp;&nbsp;tar&nbsp;&nbsp;&nbsp;&nbsp; 30&nbsp;&nbsp;&nbsp;&nbsp; */*.dat
#log&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;90%:10M&nbsp;&nbsp;clear&nbsp;&nbsp; 50000&nbsp;&nbsp;debug/err*.log
&lt;/clear_file&gt;


&lt;install_on_complete&gt;
chown user_00.users $install_path/conf/*
&lt;/install_on_complete&gt;
</textarea><br/><br/>来自：http://cocos.iteye.com/blog/1063333
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 腾讯服务器监控nginx进程，自动拉起]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>