隔壁网

来吧兄弟,一起玩一起讨论!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 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下面)
  1. cd /bin
  2. touch check_xunlei.sh
  3. chmod 777 check_xunlei.sh
复制代码
2、利用vi 编辑器,或者直接用WinSCP编辑check_xunlei.sh,代码如下:
  1. #!/bin/sh
  2. printf "--------------------------Thunder Checking Start !-----------------------------\n"
  3. num=`ps | grep ETMDaemon | grep -v grep | grep -v check | wc -l`  # 计算进程数
  4. if [ $num -lt 1 ]                                                 # 判断ETMDaemon进程是否存在
  5. then /mnt/sda3/xunlei/portal                                      # 重启进程的命令,请相应修改
  6. fi
  7. printf "--------------------------Thunder Checking Over  !-----------------------------\n"
复制代码
3、添加计划任务每10分钟执行一次
  1. */10 * * * * sh /bin/check_xunlei.sh
复制代码
-------------------------------------------------分割线---------------------------------------------------------
更保险的做法:3个进程只要有一个掉线就重启迅雷Xware。
步骤相同,check_xunlei.sh多增加几行代码;注意迅雷程序需要放在“xunlei”文件夹里,因为这里是靠检索“xunlei”关键字来计算进程数的。
  1. #!/bin/sh
  2. printf "--------------------------Thunder Checking Start !-----------------------------\n"
  3. num=`ps | grep xunlei | grep -v grep | grep -v check | wc -l`  # 计算进程数
  4. if [ $num -lt 3 ]                                              # 判断进程是否存在
  5. then /mnt/sda3/xunlei/portal                                     # 重启进程的命令,请相应修改
  6. fi
  7. printf "--------------------------Thunder Checking Over  !-----------------------------\n"
复制代码
下载地址1:

下载地址2:

下载地址3:
2015-11-21 更新一下:增加进程监视日志,有兴趣的可以试一下:
  1. #!/bin/sh
  2. file_name="/mnt/sda3/xunlei/xl.log"     #这是日志路径,请自行修改;
  3. echo -e '\n'"脚本运行时间:"`date` >> $file_name
  4. echo -e "---------------------------------Check Start----------------------------------" >> $file_name
  5. echo -e "当前进程状态:" >> $file_name
  6. ps | grep xunlei | egrep -v 'grep|check' >> $file_name
  7. num=`ps | grep xunlei | egrep -v 'grep|check' | wc -l`  # 计算进程数
  8. echo -e "迅雷进程数为:"$num >> $file_name
  9. if [ $num -lt 3 ]                                              # 判断进程是否存在
  10. then
  11.       echo -e "迅雷运行状态:Not OK" >> $file_name
  12.       /mnt/sda3/xunlei/portal                                     # 重启进程
  13.       sleep 10
  14.       num1=`ps | grep xunlei | egrep -v 'grep|check' | wc -l`  # 计算进程数
  15.       if [ $num1 -eq 3 ]
  16.       then
  17.            echo -e "迅雷进程重启:OK"  >> $file_name
  18.            ps | grep xunlei | egrep -v 'grep|check' >> $file_name
  19.       else
  20.            echo -e "迅雷进程重启:Not OK"  >> $file_name
  21.            echo -e "等待下一周期重启"  >> $file_name
  22.       fi           
  23. else
  24.       echo -e "迅雷运行状态:OK" >> $file_name
  25. fi
  26. 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------------------------------------















6

查看全部评分

本帖被以下淘专辑推荐:

分享到 :
24 人收藏

141 个回复

倒序浏览
会跳舞的驴  魔仙 | 2015-11-21 21:41:01
感谢分享。
黑群晖小赵  正常36.8℃ | 2015-11-21 22:17:14
新人膜拜,只能看,不知何意。

点评

并不高深,简单讲就是定时用ps这个命令检查迅雷进程是否还在,不在就重启它  详情 回复 发表于 2015-11-21 23:09
dongsung  VIP贵宾 | 2015-11-21 23:09:41
黑群晖小赵 发表于 2015-11-21 22:17
新人膜拜,只能看,不知何意。

并不高深,简单讲就是定时用ps这个命令检查迅雷进程是否还在,不在就重启它
faninx  魔仙 | 2015-11-22 10:25:58
没有3.0的吗

点评

NAS用迅雷远程下载Xware 3.0进程监视、掉线、自动重启教程. http://www.gebi1.com/forum.php?mod=viewthread&tid=245199&fromuid=50412 (出处: 隔壁网(第一纳斯网))  详情 回复 发表于 2015-11-22 20:32
3.0实现原理应该是类似的,你可以先看一下运行时有哪些常驻进程,然后改一下代码。 个人觉得3.0还不成熟,至少目前我还没发现怎么停止3.0的命令,所以还在用1.0  详情 回复 发表于 2015-11-22 12:21
dongsung  VIP贵宾 | 2015-11-22 12:21:45

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

NAS用迅雷远程下载Xware 3.0进程监视、掉线、自动重启教程.
http://www.gebi1.com/forum.php?m ... 9&fromuid=50412
(出处: 隔壁网(第一纳斯网))
liyaocheng  魔仙 | 2015-11-25 18:18:16
感谢分享~~~
kyo8888  发烧38℃ | 2015-11-25 20:42:28
正需要啊
swellluo  魔仙 | 2015-11-25 22:33:04
感谢分享。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|隔壁网 ( 粤ICP备14056481号-1 )

Powered by Discuz! X3.3 © 2001-2016 Comsenz Inc.

返回顶部