思路:  写一个脚本 监控程序的运行状态  没有运行启动运行 已运行不做操作. 如果在控制台启动脚本 注意必须  nohup sh xxx.sh & while true do ps -ef | grep "填入你自己的程序名" | grep -v "grep" ] then ./run.sh #启动应用,修改成自己的启动应用脚本或命令 echo "process has been restarted!" else echo "…
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px;…
android 引用:http://blog.csdn.net/caiwenfeng_for_23/article/details/41184353 package com.tan.abnormalrestart; import java.lang.Thread.UncaughtExceptionHandler; import android.app.Application; import android.content.Intent; public class AppContext exten…
Linux有自己一套完整的启动体系,抓住了Linux启动的脉络,Linux的启动过程将不再神秘. 阅读之前建议先看一下附图. 本文中假设inittab中设置的init tree为: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/rc4.d /etc/rc.d/rc5.d /etc/rc.d/rc6.d /etc/rc.d/init.d 1. 关于Linux的启动 init是所有进程之父 init…
什么是monit Monit是一个跨平台的用来监控Unix/linux系统(比如Linux.BSD.OSX.Solaris)的工具.Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不依赖任何第三方程序.插件或者库.Monit可以监控服务器进程状态.端口状态,HTTP/TCP状态码.服务器资源变化.文件系统变动等等,根据这些变化,可以设定邮件报警.重启进程或服务.易于安装.轻量级的实现以及强大的功能,让Monit成为一个理想的后备监控工具.monit不像zabbix功能那么强大,…
1 创建循环监听脚本  autostart.sh 例: 其中futures-market-server-v3andwebsoket.jar 是要监听的执行程序 #/bin/bashwhile true;do count=`ps -ef | futures-market-server-v3andwebsoket.jar | grep -v grep|wc -l` if [ ${count} -lt 1 ]; then /./home/quant/futures/jar/futures-market…
引言     在<I/O的效率比较>中,我们在修改图1程序的BUF_SIZE为8388608时,运行程序出现崩溃,如下图1:          图1. 段错误     一般而言,导致程序段错误的原因如下: 内存访问出错,这类问题的典型代表就是数组越界. 非法内存访问,出现这类问题主要是程序试图访问内核段内存而产生的错误. 栈溢出, Linux默认给一个进程分配的栈空间大小为8M,因此你的数组开得过大的话会出现这种问题.     首先我们先看一下系统默认分配的资源: $ ulimit -acor…
今天在浏览张队转载文章的留言时,遇到一个读者问了这样的问题,如下图所示: 首先能明确的一点是"程序崩溃退出了是不能用常规的方式dump的",因为整个进程树都已经退出.现场已经无法使用常规的方式读取到. 一般来说常规的方法是没办法读取到的,也有一些特殊的方式,比如有关部门在调查取证时,就可以通过一些工具读取到内存中的信息.当然这是一些hack手段,不在本文讨论中. 不过好消息是,虽然您无法在程序崩溃退出以后创建Dump,但是您可以在程序崩溃时自动创建Dump,这样下次遇到程序崩溃,那么就…
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>一个页面中有多个audio标签,其中一个播放结束后自动播放下一个,audio连续播放</title> </head> <body> <audio src="http://www.ytmp3.cn/down/49366.…
重装了系统Window7,出现了如题的提示"windows已遇到一个关键性问题 一分钟后自动重启" 查找原因: 通过事件管理器可以查看如上提示遇到的问题.一般是因为一些系统的服务没有启动,或者一些组件缺失. 解决办法 方法一尝试了,没有解决我的问题. 这个我 出现这个问题,首先要明确的是不是病毒引起的,那些经常xxx的,就可以放心不是xxx的原因了,当你试过了n种杀毒软件,依然出现1分钟自动重启的时间,你要坚信是系统文件有问题了. 简要的写一下解决方案: 第一步:win+r打开cmd…
Java线程监听,意外退出线程后自动重启 某日,天朗气清,回公司,未到9点,刷微博,顿觉问题泛滥,惊恐万分! 前一天写了一个微博爬行程序,主要工作原理就是每隔2分钟爬行一次微博,获取某N个关注朋友微博数量,然后将其保存起来,2分钟之后再次爬行,再取 其微博数量,与2分钟前保存的微博数量比较,如果数量增加,说明该好友在此2分钟之内发布微博,如果数量减少,则是删除微博.最后将爬行结果发送到指定手机上,作为通知! 今天看微博时发现自己关注的朋友发布了微博,然而自己手机却没有收到报警消息,查看爬行日志发…
近期花时间研究了一下windows和linux下某服务停了后自动重启的功能,在网上收集了些资料,并经过测试,在此整理一下.这里介绍的是windows服务的监控,是通过批处理来实现的.本例是监控windows的Computer Browser为例,每60秒检测一次(可根据实际需要调整间隔),当发现服务停止后自动重启.AutostartService.bat批处理文件内容如下   @echo off rem 定义循环间隔时间和监测的服务: set secs=60 set srvname="Compu…
在用socket.io, pika之类启动一个脚本死循环做server或者client的时候: 1脚本被编辑之后,是不会自动重启 2当代码报错的时候,会立即退出, 只能手动重新运行 python app.py 那么django, flask的代码编辑后自动重启的功能是非常实用的. 那么怎么做呢? 其实特别简单 用flask作者自己的库,一行搞定.舒心 from werkzeug._reloader import run_with_reloader def main(): //启动某种死循环的ap…
如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务程序时经常会碰到这样的问题.在Linux系统中,强大的shell就可以很灵活的处理这样的事务. 下面的shell通过一个while-do循环,用ps -ef|grep 检查loader进程是否正在运行,如果没有运行,则启动,这样就保证了崩溃挂掉的进程重新被及时启动. 必须注意两点: 1.ps |grep 一个进程时必须加上其路劲,否则容易grep到错误的结果: 2.必须用 -v 从结果中去除grep命令自身,否则结果非空. 复制代…
有时候由于测试不充分或者程序潜在的问题而导致程序异常崩溃,这个是令人无法接受的,在android中怎样捕获程序的异常崩溃,然后进行一些必要的处理或重新启动 应用这个问题困恼了我很久,今天终于解决了该问题,写篇文章记录一下. 首先捕获程序崩溃的异常就必须了解一下java中UncaughtExceptionHandler这个接口,android沿用了此接口,在android API中: 通过实现此接口,能够处理线程被一个无法捕捉的异常所终止的情况.如上所述的情况,handler将会报告线程终止和不明…
在平常的工作中,windows系统使用的比较多一些,身边的很多同事都会对自己的电脑进行一些个性化设置,比如离开一段时间后自动锁屏.自动关闭屏幕.自动注销当前登录等.在windows下可以这样操作,那么在Linux下是否也可以这样操作呢?经过一段时间的摸索,本人发现了2中方法来实现Linux下不活动用户在登录一段时间后自动登出操作,分享给大家. 方法一.通过修改.bashrc或.bash_profile文件来实现 通过修改home目录下的.bashrc或.bash_profile文件来实现.这两个…
由于我们做的是机器人上的软件,而机器人是24小时不间断服务的,这就要求我们的软件不能退出到系统桌面.当然最好是能够做到程序能够不卡顿,不崩溃,自己不退出.由于我们引用了很多第三方的开发包,也不能保证他们的稳定性,所以,要做到完全不崩溃也是不可能的. 退而求其次,如果崩溃了我们就要保证程序能够被拉起来,期间也看过很多保活的方案,比如service前台的方法,比如jni里写守护进程,比如接收系统广播唤醒,比如用alarmmanager唤醒等等,感觉不是效率底,就是被系统屏蔽了.经过不断筛选,我认为使…
在应用发布以后,由于安卓机型的千差万别 ,可能会出现各种各样的问题,这时候如果我们可以将这些信息收集起来,并进行修改就很不错了.下面就来讨论一下怎么处理程序崩溃以后,错误信息的手机. Java中已经提供了一个接口Thread.UncaughtExceptionHandler来对运行时的异常进行处理.只需要实现这个接口,并覆写 public void uncaughtException(Thread thread, Throwable ex) 方法即可. 由于Application是Android…
当添加一个新账号后,我们可能会发现新账号sudo 时会报告不在sudoers中,使用su -s时输入密码后也会认证失败 上网搜索大部分都要求修改/etc/sudoers中的内容,但修改这个文件必须需要权限,这就陷入了死循环,故而我们需要更改策略来迂回更改文件: 1.使用另一个可以使用root权限的账号来登陆,然后sudo -s进入root模式 2.查看/etc/sudoers文件权限,如果只读权限,修改为可写权限 3.修改/etc/sudoers文件,执行命令如下: /*username是你的用…
参考 编辑 ~/.bashrc 或 ~/.bash_profile 文件: $ vi ~/.bashrc 或, $ vi ~/.bash_profile 将下面行加入其中: TMOUT=100 这会让用户在停止动作 100 秒后自动登出.你可以根据需要定义这个值.保存并关闭文件. 运行下面命令让更改生效: $ source ~/.bashrc 或, $ source ~/.bash_profile 现在让会话闲置 100 秒.100 秒不活动后,你会看到下面这段信息,并且用户会自动退出会话. […
http://www.kaifajie.cn/android/10182-2.html 每次调用startService(Intent)的时候,都会调用该Service对象的onStartCommand(Intent,int,int)方法,这个方法return 一个int值,return 的值有四种: START_STICKY:如果service进程被kill掉,保留service的状态为开始状态,但不保留递送的intent对象.随后系统会尝试重新创建service,由于服务状态为开始状态,所以…
写PHP等脚本语言的时候,已经习惯了修改完代码直接打开浏览器去查看最新的效果.而Node.js 只有在第一次引用时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,这种设计虽然有利于提高性能,却不利于开发调试. 在没有使用第三方工具的情况下,通常修改js文件后需要手动CTRL+C终止程序,再重新启动node服务,这显然是一件很繁琐的事情. 于是就出现了很多第三方的管理工具(例如:supervisor.hotnode.forever.pm2等),当文件修改保存后,它能自动重启node服务,帮…
我用的是华硕的笔记本电脑,不知道别的电脑有没有这个情况,按handbook关机指令为shutdown -p now,但是我执行这个指令后电脑却自动重启,用Linux关机指令shutdown -h now,电脑不自动重启了,却停留在按任意键重启的界面,查了一回之后,貌似原来的FreeBSD版本是这样关机.但是现在handbook推荐-p指令关机,我电脑也存在下次开机,类似像windowns系统断电开机的确认界面,因此认为-h指令对于现在的FreeBSD是不合适的.后来看到FreeBSD能源和资源管…
设计思想:编写批处理脚本监控进程的运行状态,如果发现进程停止,则自动重启该进程.批处理脚本(jk.bat)和进程脚本(hello.bat)如下: 1.jk.bat @echo off rem 定义需监控程序的进程名和程序路径,可根据需要进行修改 set AppName=myHello.jar set AppPath=C:\Users\dongbr\Desktop\test\ title 进程监控 cls echo. echo 进程监控开始…… echo. rem 定义循环体 :startjc r…
1.自定义UncaughtExceptionHandler public class UnCeHandler implements UncaughtExceptionHandler { private Thread.UncaughtExceptionHandler mDefaultHandler; public final String TAG = "CatchExcep"; CatchExcApplication application; public UnCeHandler(Cat…
1.chkconfig但是要在脚本中满足一定的条件(/etc/init.d/)下存在相关服务 2.将启动的程序写入到/etc/rc.local 选择建议: /etc/rc.local可以作为开机启动程序的一种档案记录 系统启动顺序中,整个系统启动完成后才执行rc.local里的程序…
/opt/a.sh #! /bin/bash ps -ef | grep python3 a.py | grep -v grep | grep python3 if [ $? -ne 0 ] then cd /opt/a.py && python3 a.py else echo "running" fi 之后写一个定时脚本2分钟捕捉一次 2 * * * * /opt/a.sh…
Automatic reboot after Linux kernel panic http://www.syn-ack.org/centos-linux/automatic-reboot-after-linux-kernel-panic/ Kernel panics for all sorts of reasons. Both hardware failures and software failures. It is always important to investigate the r…
热部署是什么 大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的Class文件,这个文件里记录着和代码等对应的各种信息,然后Class文件将被虚拟机的ClassLoader加载. 而热部署正是利用了这个特点,它监听到如果有Class文件改动了,就会创建一个新的ClaassLoader进行加载该文件,经过一系列的过程,最终将结果呈现在我们眼前. 类加载机制 Java中的类经过编译器可以把代码编译为存储字节码的C…
Fedora 17 on an Aspire V5-571 -- Reboot on Shutdown13 FEBRUARY 2015Update on 2/13/15: This article was originally posted on 08/12/2012 on my old blog (http://www.pbehnke.com/main/node/11). I've copied and pasted most of it from the original. However,…