shell脚本编写,实现爬虫挂掉后重启
2016-06-23 17:42
603 查看
首先我说一下需求
我有一个java写的爬虫,需要运行在linux后台,爬虫分为服务器端和客户端后台运行爬虫
linux运行jar文件java -jar ./spider_server.jar
后台运行:
nohup java -jar ./spider_server.jar > server.log 2>&1 &
使用nohup命令,然后把日志信息输出到server.log中
如果直接使用
java -jar ./spider_server.jar &当前终端关闭后则程序停止运行
判断爬虫进程是否挂掉
ps -ef | grep spider_server.jar |wc -l
此命令输出结果为下面记录的个数:
当spider_server进程存在时,输出为2
当spider_server进程不存在时,输出为1
我们可以判断输出结果是否大于1来判断爬虫是否存在
另一种方式判断爬虫进程是否挂掉
jps |grep spider_server
jps命令列出所有的java进程
shell脚本
我的爬虫是这样设计的,server端挂掉则client端会跟着挂掉,而client端挂掉server端继续运行,所以编写的shell脚本如下vim restart.sh #!/bin/bash while : #循环,为了让脚本一直运行监控 do COUNT=`ps -ef | grep spider_server.jar |wc -l` COUNT1=`ps -ef | grep spider_client.jar |wc -l` if [ "$COUNT" -gt 1 ];then echo "server service is ok" if [ "$COUNT1" -gt 1 ];then echo "client service is ok" else echo "client servicie not exist" nohup java -jar ./spider_client.jar > client.log 2>&1 & fi else echo "server servicie not exist" nohup java -jar ./spider_server.jar > server.log 2>&1 & sleep 10s nohup java -jar ./spider_client.jar > client.log 2>&1 & fi sleep 60 done
运行shell脚本
因为我们需要脚本一直运行在后台,所以也需要使用nohup运行nohup ./restart.sh > restart.log 2>&1 &
相关文章推荐
- android wifi 无线调试
- Python3写爬虫(四)多线程实现数据爬取
- 运维入门
- 动态清空 nohup 输出文件
- install scrapy with pip and easy_install
- Scrapy的架构介绍
- 爬虫笔记
- Linux Shell常用技巧
- Shell 脚本编程陷阱
- VBS脚本写的Windows硬件检测工具分享
- 用vbscript实现隐藏任务栏图标的脚本
- 用autoit编写第一个脚本(Hello World)
- VBS调用WMI快速关闭IE的脚本
- Oracle数据库执行脚本常用命令小结
- 收集的ROS防火墙脚本
- JSP脚本漏洞面面观
- shell字符串操作详解
- 不错的批处理脚本 第一部分