shell脚本监测进程启动
① shell脚本判断是否有某进程在运行
1 、可以通过ps命令获取所有的进程,然后通过awk命令提取进程名,再用grep提取相应的进程名即可。
2、参考代码如下:
ps-aux|awk'{print$11}'|grep"^$1">/dev/null
case$?in
0)
echo"findprocess$1"
;;
1)
echo"$1isnotrunning"
;;
*)
echo"unknowerror"
esac
3、运行结果如下
② 在安卓shell脚本中如何让它一直运行判断一个进程是否存在。 比如QQ进程 存在的话不进行任何操作
如果你是通过一个进程的名字作为关键词来查找进程是否存在的话,可使用
ps -ef | grep "<关键词>" | wc -l
输出为0表示不存在,输出大于0,表示存在,且数字就是这个关键词进程的个数;
如果你是通过进程号PID来查找进程是否存在,可以使用
ps --no-heading <PID> | wc -l
同样,
输出为0表示不存在,输出=1,表示存在,因为进程号不可能重复,所以输出肯定非0即1
③ 如何编写一个shell脚本实时的查看某个进程
如果进程名字是复杂且唯一的那只需要使用grep做简单匹配,使用下面命令:
ps-ef|grep-vgrep|grep'进程名字'&&echo'正在运行'||echo'已停止运行'
④ 怎么获取shell在控制台执行的进程id
当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。
在某些情况下,你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的情况下使用。比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件。有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身的子shell。
在bash中,子shell进程的PID存储在一个特殊的变量‘$$'中。这个变量只读,你不可以在脚本中修改它。比如:
复制代码代码如下:
#!/bin/bash
echo "PID of this script: $$"
上面的脚本会得到下面的输出:
复制代码代码如下:
PID of this script: 6583
除了$$, bash shell还会导出其他的只读变量。比如,PPID存储子shell父进程的ID(也就是主shell)。UID存储了执行这个脚本的当前用户ID。比如:
复制代码代码如下:
#!/bin/bash
echo "PID of this script: $$"
echo "PPID of this script: $PPID"
echo "UID of this script: $UID"
输出是:
复制代码代码如下:
PID of this script: 6686
PPID of this script: 4656
UID of this script: 1000
上面输出中,PID每次执行都会变化。这个因为每次运行都会创建一个新的shell。另一方面,PPID每次都会一样只要你在同一个shell中运行。
对于所有bash内置变量列表,参考man页。
复制代码代码如下:
$ man bash
⑤ 求帮忙写一个shell脚本,监控进程的。
#!/bin/sh
ps -ef | grep -v grep || grep -w 'java -jar /opt/mcb/scap/bin/ftp.jar monitor'
if [ $? -eq 0 ]; then
echo "start"
else
java start
fi
⑥ shell 检测某一个进程是否存在
#!/bin/bash
pid=`ps -ef | grep "想要监控的程序名"|wc -l`
if [ -gt $pid ]
then
echo "is running"
else
echo "not running"
fi
⑦ shell 脚本检测当前脚本已在执行则kill
sh /usr/local/sbin/gdas/start.sh
改为
source /usr/local/sbin/gdas/start.sh
用sh方式去执行就是另开一个shell去跑,相当于是异步的,不等start.sh执行完就执行下面的判断了。用source在当前shell执行该脚本,就是阻塞方式,就不存在此问题了。
建议先手动执行脚本,检验无误了再加入crontab
⑧ shell脚本如何判断应用程序是否开启正常
你应该自己问自己一个问题,何所谓正常打开,正常打开的话有什么特征?能回答这个问题就可以解决这个问题了。
反正我是不明白什么叫“正常打开”。如果加入到进程表就算正常打开的话,可以考虑楼上ps的做法。