您的位置:首页 > 其它

群晖NAS用迅雷远程下载Xware 1.xxx的进程监视和掉线自动重启

2017-02-22 11:22 531 查看
迅雷远程下载Xware1.0运行时共有三个进程常驻后台:ETMDaemon、EmbedThunderManager、vod_httpserver,如下:

# ps | grep volume1
23148 root      1976 S    /volume1/ThunderDB/xware/lib/ETMDaemon /volume1/ThunderDB/xware/lib/EmbedThunderManager /dev/null /dev/null ********************
23151 root     51628 S    /volume1/ThunderDB/xware/lib/EmbedThunderManager ******************************************
23152 root      3888 S    /volume1/ThunderDB/xware/lib/vod_httpserver


要保证迅雷远程下载功能正常,三个进程都必须在,为防止进程跑死可通过定时检查进程是否存在以保证远程下载功能正常。

经测试:只要ETMDaemon进程存在,另外两个进程EmbedThunderManager、vod_httpserver就会自动重启,所以只要定时检查ETMDaemon进程是否存在,若不存在,重启迅雷/mnt/sda3/xunlei/portal 。实现方法如下:

注意:笔者是在自己硬件上面测试的,测试时迅雷运行时只有三个进程,有坛友反映运行有10个进程,请坛友根据自己的运行情况修改下面脚本里面的“3”。或者直接用检测ETMDaemon 教程这个方法;

1、任意位置新建一个文件check_xunlei.sh,并配置权限,如:(有可能bin下面没有权限创建,可以创建到xunlei下面)

1    cd /bin
2    touch check_xunlei.sh
3    chmod 777 check_xunlei.sh


复制代码

2、利用vi 编辑器,或者直接用WinSCP编辑check_xunlei.sh,代码如下:

#!/bin/sh
printf "--------------------------Thunder Checking Start !-----------------------------\n"
num=`ps | grep ETMDaemon | grep -v grep | grep -v check | wc -l`  # 计算进程数
if [ $num -lt 1 ]                                                 # 判断ETMDaemon进程是否存在
then /mnt/sda3/xunlei/portal                                      # 重启进程的命令,请相应修改
fi
printf "--------------------------Thunder Checking Over  !-----------------------------\n"


3、添加计划任务,每10分钟执行一次;

*/10 * * * * sh /bin/check_xunlei.sh


————————————————-分割线———————————————————

更保险的做法:3个进程只要有一个掉线就重启迅雷Xware。

步骤相同,check_xunlei.sh多增加几行代码;注意迅雷程序需要放在“xunlei”文件夹里,因为这里是靠检索“xunlei”关键字来计算进程数的。

#!/bin/sh
printf "--------------------------Thunder Checking Start !-----------------------------\n"
# 计算进程数
num=`ps | grep xunlei | grep -v grep | grep -v check | wc -l`
if [ $num -lt 3 ]                # 判断进程是否存在)
then /mnt/sda3/xunlei/portal     # 重启进程的命令,请相应修改
fi
printf "--------------------------Thunder Checking Over  !-----------------------------\n"


2015-11-21 更新一下:增加进程监视日志,有兴趣的可以试一下:

#!/bin/sh$ N% m" S( R! I% Z
file_name="/mnt/sda3/xunlei/xl.log"     #这是日志路径,请自行修改
echo -e '\n'"脚本运行时间:"`date` >> $file_name!
echo -e "---------------------------------Check Start----------------------------------" >> $file_name
echo -e "当前进程状态:" >> $file_name
ps | grep xunlei | egrep -v 'grep|check' >> $file_name
num=`ps | grep xunlei | egrep -v 'grep|check' | wc -l`  # 计算进程数
echo -e "迅雷进程数为:"$num >> $file_name
if [ $num -lt 3 ]                                              # 判断进程是否存在# y+ B) ]' p# e) w
then # L5 n  I" h8 U) `- `
echo -e "迅雷运行状态:Not OK" >> $file_namef
/mnt/sda3/xunlei/portal                                     # 重启进程
sleep 10
num1=`ps | grep xunlei | egrep -v 'grep|check' | wc -l`  # 计算进程数
if [ $num1 -eq 3 ]
then
echo -e "迅雷进程重启:OK"  >> $file_name
ps | grep xunlei | egrep -v 'grep|check' >> $file_name
else
echo -e "迅雷进程重启:Not OK"  >> $file_name
echo -e "等待下一周期重启"  >> $file_name
fi
else
echo -e "迅雷运行状态:OK" >> $file_name
fi
echo -e "---------------------------------Check Over------------------------------------" >> $file_name#


生成的日志文件如下:

脚本运行时间:Fri Nov 20 14:10:01 CST 2015

———————————Check Start———————————-/

当前进程状态:

11002 root 9388 S /mnt/sda3/xunlei/lib/EmbedThunderManager [b]*[/b]

11006 root 2868 S /mnt/sda3/xunlei/lib/vod_httpserver:

迅雷进程数为:2

迅雷运行状态:Not OK#

迅雷进程重启:OK

11821 root 828 S /mnt/sda3/xunlei/lib/ETMDaemon /mnt/sda3/xunlei/lib/

11823 root 9384 S /mnt/sda3/xunlei/lib/EmbedThunderManager [b]*[/b]

11827 root 2868 S /mnt/sda3/xunlei/lib/vod_httpserver

———————————Check Over————————————#

脚本运行时间:Fri Nov 20 14:15:01 CST 2015

———————————Check Start———————————-

当前进程状态:

11821 root 828 S /mnt/sda3/xunlei/lib/ETMDaemon /mnt/sda3/xunlei/lib/

11827 root 2868 S /mnt/sda3/xunlei/lib/vod_httpserver

12307 root 9388 S /mnt/sda3/xunlei/lib/EmbedThunderManager [b]*[/b]

迅雷进程数为:35

迅雷运行状态:OK.

———————————Check Over————————————
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  迅雷 群晖NAS xware