shell拉进程

#!/bin/sh
MM=`ps -ef|grep memcached|grep -v grep|wc -l`
while [ "$MM" -eq 0 ]
   do
   echo "$(date +%Y%m%d%H%M%S),the memcached is down,try to up it" >>/data/shell/men.log
   /usr/bin/memcached -d -u root -m 512 -p 39999 -c 1024
   sleep 2s
   MM=`ps -ef|grep memcached|grep -v grep|wc -l`
   done
   echo "$(date +%Y%m%d%H%M%S),the memcached is ok" >>/data/shell/men.log

使用ps 统计进程数,如果为零。则拉起程序

并记录log

date 用法参考http://www.cnblogs.com/peida/archive/2012/12/13/2815687.html

时间: 2024-10-25 21:46:17

shell拉进程的相关文章

shell获取进程ID的方法: pidof | pgrep | ps-A+grep+awk

shell获取进程ID的方法: 我知道和实践过的有这么三种: ps -A |grep "cmdname"| awk '{print $1}' pidof "cmdname" pgrep "cmdname" 这三种在bash和busybox ash里面的运行结果稍有不同, 第一种完全相同,但是因为调用命令次数较多,性能上是不行的. 第二种: pidof 只能获取程序的文件名匹配到的进程号,在ash中 比如 pidof "usr/bin/t

Shell:进程的层级关系

[[email protected] ~]$ ps -ef | grep initroot 1 0 0 Apr24 ? 00:08:25 init [3] [[email protected] ~]$ ps -ef | head -n 1UID PID PPID C STIME TTY TIME CMD 第二三列分别是当前进程ID,父进程ID P1:0号进程fork出1号root权限的init进程,1号(注:0号进程是系统启动的第一个进程,它是所有其它进程的祖先,进程成为孤儿进程后会被0号进程接

第9章:Shell脚本进程管理

第9章:Shell脚本进程管理 9.1.进程概念 理解进程概念需要先简单了解指令和程序这两个概念,进程跟指令和程序是相关联的. 什么叫指令? 指令是指示计算机执行某种操作的命令,它由一串二进制数码组成. 什么叫程序? 程序(Program)是实现计算机执行一个或多个操作,或执行某一任务,按序设计的计算机指令的集合. 什么叫进程? 进程是正在运行的程序的实例,进程也是执行程序的具体实现过程. 指令.程序和进程三者之间的关系? 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存

Shell 获取进程 PID

Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程,因此在获取进程 pid 上二者也有所区别. 交互式 Bash Shell 获取进程 pid #在已知进程名(name)的前提下,交互式 Shell 获取进程 pid 有很多种方法,典型的通过 grep 获取 pid 的方法为(这里添加 -v grep是为了避免匹配到 grep 进程): ps -ef | grep "name" | grep -v grep | awk '{pri

Python3判断shell下进程是否存在&&启动&&邮件通知

判断进程是否存在 def isRunning(process_name): try: process = len(os.popen('ps aux | grep "' + process_name + '" | grep -v grep').readlines()) if process >= 1: return True else: return False except: print("Check process ERROR!!!") return Fal

adb shell 杀进程以及端口占用,adbserver服务重启失败

linux: adb shell  ps |grep  netease 杀进程: adb shell kill [PID] //杀死进程 C:\Users\chenquan>adb shell psUSER PID PPID VSIZE RSS WCHAN PC NAMEroot 1 0 428 240 c01c0a90 08054ac6 S /initroot 2 0 0 0 c013a8a6 00000000 S kthreaddroot 3 2 0 0 c0128d84 00000000

shell 守护进程

#!/bin/sh #守护进程,接受2个参数 #para CMD 执行的命令 #pare ID 唯一标识改命令 if [ "$1" = "" -o "$2" = "" ];then echo "USAGE:deamon.sh CMD ID" exit 100 fi #创建文件夹 mkdir -p ./var CMD=$1 ID=$2 #守护循环 while [ 1 ] do #执行命令 $CMD &

Linux shell - 找到进程pid,然后杀掉(jps, grep, awk)

在应用服务器上,启动一个应用程序F3后,一直挂着,如果想要关闭它话,可以使用jps找到它的pid,然后,使用kill命令杀掉这个pid,例如: $> jps 17337 Jps 6660 Main 11886 F3TaskManagerWithApacheCLIParser $>kill -9 11886 在shell脚本中,可以实现自动化的方式如下: pid=jps |grep Main |awk '{print $1}' kill -9 $pid

adb shell 杀进程 杀包名

试了那么多个,假设使用pid的话非常好办(adb shell kill pid),只是假设仅仅有包名的话或者你的pid常常变化(实际上pid开机后或者你的app关闭后就会发生变化),能够使用下面方法: adb shell am force-stop com.taobao.taobao //后面跟的是包名