dongsung 发表于 2015-11-21 13:28:32

NAS用迅雷远程下载Xware 1.0进程监视、掉线、自动重启...

本帖最后由 dongsung 于 2015-11-25 13:17 编辑

2015-11-19 更新一下:简化代码
--------------------------------------------------------------------------------------------------------
迅雷远程下载Xware1.0运行时共有三个进程常驻后台:ETMDaemon、EmbedThunderManager、vod_httpserver,如下图:

要保证迅雷远程下载功能正常,三个进程都必须在,为防止进程跑死可通过定时检查进程是否存在以保证远程下载功能正常。
经测试:只要ETMDaemon进程存在,另外两个进程EmbedThunderManager、vod_httpserver就会自动重启,所以只要定时检查ETMDaemon进程是否存在,若不存在,重启迅雷/mnt/sda3/xunlei/portal 。实现方法如下:
注意:笔者是在自己硬件上面测试的,测试时迅雷运行时只有三个进程,有坛友反映运行有10个进程,请坛友根据自己的运行情况修改下面脚本里面的“3”。或者直接用检测ETMDaemon 教程这个方法;
1、任意位置新建一个文件check_xunlei.sh,并配置权限,如:(有可能bin下面没有权限创建,可以创建到xunlei下面)
cd /bin
touch check_xunlei.sh
chmod 777 check_xunlei.sh2、利用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"下载地址1:

下载地址2:

下载地址3:
2015-11-21 更新一下:增加进程监视日志,有兴趣的可以试一下:
#!/bin/sh
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 ]                                              # 判断进程是否存在
then
      echo -e "迅雷运行状态:Not OK" >> $file_name
      /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 ***********
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 ***********
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 ***********
迅雷进程数为:3
迅雷运行状态:OK
---------------------------------Check Over------------------------------------














会跳舞的驴 发表于 2015-11-21 21:41:01

感谢分享。

黑群晖小赵 发表于 2015-11-21 22:17:14

新人膜拜,只能看,不知何意。

dongsung 发表于 2015-11-21 23:09:41

黑群晖小赵 发表于 2015-11-21 22:17
新人膜拜,只能看,不知何意。

并不高深,简单讲就是定时用ps这个命令检查迅雷进程是否还在,不在就重启它

faninx 发表于 2015-11-22 10:25:58

没有3.0的吗

dongsung 发表于 2015-11-22 12:21:45

faninx 发表于 2015-11-22 10:25
没有3.0的吗

3.0实现原理应该是类似的,你可以先看一下运行时有哪些常驻进程,然后改一下代码。
个人觉得3.0还不成熟,至少目前我还没发现怎么停止3.0的命令,所以还在用1.0

dongsung 发表于 2015-11-22 20:32:19

faninx 发表于 2015-11-22 10:25
没有3.0的吗

NAS用迅雷远程下载Xware 3.0进程监视、掉线、自动重启教程.
http://www.gebi1.com/forum.php?mod=viewthread&tid=245199&fromuid=50412
(出处: 隔壁网(第一纳斯网))

liyaocheng 发表于 2015-11-25 18:18:16

感谢分享~~~

kyo8888 发表于 2015-11-25 20:42:28

正需要啊

swellluo 发表于 2015-11-25 22:33:04

感谢分享。

shenrui01 发表于 2015-11-26 20:44:46

NAS用迅雷远程下载Xware 1.0进程监视

coolyou 发表于 2015-11-26 20:51:40

来看看怎么做的

casio4j4w 发表于 2015-11-27 21:11:39


感谢分享。

nass 发表于 2015-11-28 01:24:57

看看。。。。。。。。。。。。。。。

lgx451 发表于 2015-11-28 08:56:05

3.0搞不定 试试1.0

myfriends 发表于 2015-11-29 12:44:04

感谢分享。

fance068 发表于 2015-11-29 15:27:54

技术贴要顶,迅雷为什么每个盘了要自动建2个下载的文件夹,晕

dongsung 发表于 2015-11-29 21:14:10

fance068 发表于 2015-11-29 15:27
技术贴要顶,迅雷为什么每个盘了要自动建2个下载的文件夹,晕

可以更改路径配置文件里的下载目录

goolias 发表于 2015-11-29 23:45:22

感谢分享。

lwchiori 发表于 2015-12-2 15:33:35

谢谢分享!今天常掉线
页: [1] 2 3 4 5 6 7 8
查看完整版本: NAS用迅雷远程下载Xware 1.0进程监视、掉线、自动重启...