Shell脚本实现检测进程是否正在运行

时间:2023-01-25 07:58:35 其他范文 收藏本文 下载本文

Shell脚本实现检测进程是否正在运行(合集6篇)由网友“踽踽麦是湖”投稿提供,下面是小编帮大家整理后的Shell脚本实现检测进程是否正在运行,欢迎阅读,希望大家能够喜欢。

Shell脚本实现检测进程是否正在运行

篇1:Shell脚本实现检测进程是否正在运行

这篇文章主要介绍了Shell脚本实现检测进程是否正在运行,本文给出的代码简洁清晰,并给出了使用方法,需要的朋友可以参考下

这里简单介绍一个自己写的检测某个进程是否存在的bash小脚本,直接上代码。

代码如下:

#!/bin/bash

ps_out=`ps -ef | grep $1 | grep -v ‘grep‘ | grep -v $0`

result=$(echo $ps_out | grep “$1”)

if [[ “$result” != “” ]];then

echo “Running”

else

echo “Not Running”

fi

举例使用

比如我们启动了一个这样的进程python -m SimpleHTTPServer 8000,我们想检测这个进程是否存在,可以这样,

代码如下:

17:38:07-androidyue~/osc_git/shell_works (master)$ ./checkRunningProcess.sh ‘SimpleHTTPServer‘

Running

些许说明

该脚本会自动去除包含目标信息的grep进程。以及当前这个正在执行的脚本。

使用保存文件后,确保具有可执行属性。

篇2:linux shell实现守护进程脚本

这篇文章主要介绍了linux shell实现守护进程脚本,非常简单实用的代码,这里推荐给小伙伴,希望大家能够喜欢。

嵌入式初学者,第一次上传代码。昨天做了一个udhcpd与udhcpc的守护,目前只会用shell模仿编写,还有什么方法可以做守护呢?

#! /bin/sh#进程名字可修改PRO_NAME=udhcpcWLAN=ra0 while true ; do # 用ps获取$PRO_NAME进程数量 NUM=`ps aux | grep ${PRO_NAME} | grep -v grep |wc -l`# echo $NUM# 少于1,重启进程 if [ “${NUM}” -lt “1” ];then echo “${PRO_NAME} was killed” ${PRO_NAME} -i ${WLAN}# 大于1,杀掉所有进程,重启 elif [ “${NUM}” -gt “1” ];then echo “more than 1 ${PRO_NAME},killall ${PRO_NAME}” killall -9 $PRO_NAME ${PRO_NAME} -i ${WLAN} fi# kill僵尸进程 NUM_STAT=`ps aux | grep ${PRO_NAME} | grep T | grep -v grep | wc -l` if [ “${NUM_STAT}” -gt “0” ];then killall -9 ${PRO_NAME} ${PRO_NAME} -i ${WLAN} fidone exit 0

以上所述就是本文的全部内容了,希望能够对大家熟悉linux shell脚本有所帮助,

篇3:Shell脚本实现监视指定进程的运行状态

这篇文章主要介绍了Shell脚本实现监视指定进程的运行状态,本文直接给出脚本代码,需要的朋友可以参考下

在之前的博客中,曾经写了自动化测试程序的实现方法,现在开发者需要知道被测试的进程(在此指运行在LINUX上的主进程的)在异常退出之前的进程的运行状态,例如内存的使用率、CPU的使用率等,

现用shell脚本实现指定进程的运行状态。直接上代码。

#!/bin/shecho “`date`”echo “Start $0---------”echo “”#每十秒监视一下sec=10#取得指定进程名为mainAPP,内存的使用率,进程运行状态,进程名称eval $(ps | grep “mainApp” | grep -v grep | awk {‘printf(“memInfo=%s;myStatus=%s;pName=%s”,$3,$4,$5)‘})echo $pName $myStatus $memInfotestPrg=“”while [ -n “$pName” -a “$myStatus” != “Z” ]do echo “----------`date`---------------------” echo $pName $myStatus $memInfo sleep $sec ####You must initialize them again!!!!! pName=“” myStatus=“” memInfo=“” eval $(ps | grep “mainApp” | grep -v grep | awk {‘printf(“memInfo=%s;myStatus=%s;pName=%s”,$3,$4,$5)‘}) testPrg=`ps | grep “MyTester” | grep -v grep | awk ‘{print $0}‘` if [ -z “$testPrg” ]; then break fi ##注意一定要再次初始化为空 testPrg=“”doneecho “End $0---($pName,$myStatus,$testPrg)-------------------”if [ -z “$pName” ]; then ###发现测被测试程序异常退出后,停止测试程序 killall MyTester echo “stop TestProgram MyTester”fiecho “`date`”echo “---------------Current Status------------------”ps | grep -E “mainApp|SubApp” | grep -v grepecho “”

样实现了每10s读取一下进程的状态,然后显示出来,当发现进程存在并且状态非Z(非僵尸)时,继续监视,但是当测试程序执行完毕或是异常退出时,该脚本也会退出监视循环,退出循环后,打印出指定进程的状态,

篇4:Linux Shell脚本实现检测tomcat

这篇文章主要介绍了Linux Shell脚本实现检测tomcat的方法,推荐给小伙伴们,需要的朋友可以参考下

Linux Shell脚本检测tomcat并自动重启

后台运行命令 sh xxx.sh &

查看后台任务:jobs

召唤到前台:fg jobs编号

可以删掉while循环的代码放到crontab里面定时执行,可以将脚本直接后台运行,

#!/bin/bashwhile [ true ]do url=“www.jb51.net/”; httpOK=`curl --connect-timeout 10 -m 60 --head --silent $url | awk ‘NR==1{print $2}‘`; if [ $httpOK == “200” ];then tomcat6=`ps -ef | grep tomcat | awk ‘NR==1{print $1“ ”$2;}‘`; user=`echo $tomcat6 | awk ‘NR==1{print $1}‘`; pid=`echo $tomcat6 | awk ‘NR==1{print $2}‘`; if [ $user != “tomcat” ]; thenservice tomcat6 start; elsekill -9 $pid;sleep 5s;service tomcat6 start;service tomcat6 start;service tomcat6 status; fi; fi; sleep 5m;done;

以上所述就是本文的全部内容了,希望大家能够喜欢,

Linux Shell脚本实现检测tomcat

篇5:Shell脚本实现ftok函数

这篇文章主要介绍了Shell脚本实现ftok函数,ftok函数是操作系统底层中很有名的一个函数,本文讲在Shell中如何实现同样算法的函数,需要的朋友可以参考下

“古老的 Sys IPC 仍然有好几种有效的用途,三种 IPC 对象是共享内存,信号灯和消息。”当使用到 IPC 的这些对象时,你需要为每个对象创建一个 Key。虽然理论上来说我们在定义一个 IPC Key 的时候可以使用任意自己喜欢的 Key ,但为了避免与其他的程序产生定义重复,在 UNIX/Linux 中一般会使用 key_t ftok(const char *path, int id) 函数来生成一个比较唯一的 Key 值。然而,“每个人都讨厌 System V IPC。它比打孔纸带还慢,使用与文件系统完全无关少得可怜的名字空间,使用人类讨厌的数字给它的对象命名,并且还常常自己忘记自己的对象,你的系统管理员经常需要用 ipcs(1) 查找那些丢失了的对象并且用 ipcrm(1) 删除它们,还得求老天保佑不要在用光内存以后才发现问题。” 对于来实现进程监控/自动重启Bash Shell 脚本来说,在脚本里面硬编码进当前程序用到的 Key 值肯定不是个好办法,最好是实现相同算法的 ftok 函数。

代码如下:

#!/bin/sh

let key=0

function ftok {

pathname=$1;

proj_id=$2;

str_st_ino=`stat --format=‘%i‘ “${pathname}” 2>/dev/null`;

str_st_dev=`stat --format=‘%d‘ “${pathname}” 2>/dev/null`;

if [ “x${str_st_ino}” = “x” -o “x${str_st_dev}” = “x” ] ; then

return 1;

fi

let st_ino=${str_st_ino}

let st_dev=${str_st_dev}

# 注意这里的位操作运算符需要加转义符

let key1=${st_ino}\&16#FFFF

let key2=${st_dev}\&16#FF

let key2=${key2}\<\<16

let key3=${proj_id}\&16#FF

let key3=${key3}\<\<24

let key=${key1}\|${key2}

let key=${key}\|${key3}

}

function echohelp(){

echo “ftok generator”

echo “Usage:ftok pathname projid”

exit 5

}

if [ $# -ne 2 ] ; then

echohelp

fi

sPathName=$1

let nProjectID=$2

if [ “${sPathName:0:1}” != “/” ] ; then

sPathName=${PWD}/${sPathName}

fi

if ! test -f ${sPathName} ; then

echo “No File Found![${sPathName}]”

exit 4

fi

ftok “${sPathName}” “${nProjectID}”

echo ${key}

篇6:Shell脚本实现简单分割字符串

这篇文章主要介绍了Shell脚本实现简单分割字符串,本文讲解使用CUT命令实现以逗号、分号或其它分隔符来切割字符串,需要的朋友可以参考下

我们有这样一个字符串:

代码如下:

info=‘abcd;efgh‘

现在想获取abcd和efgh,我们可以简单地用cut工具来获取:

代码如下:

fstr=`echo $info | cut -d \; -f 1`

sstr=`echo $info | cut -d \; -f 2`

这里主要是用了cut工具的-d和-f参数:

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

关于cut工具其他参数可参考这里:cut命令

Unix系列shell程序编写Windows系统

后门750字作文

SA239考前总结(14章)Windows系统

教你做服务级的木马后门

网络入侵检测方法

Shell编程之正则表达式详解

Linux UDP反弹shell脚本脚本安全

安全工具暗藏杀机:快速识别后门程序

Python标准库urllib2的一些使用细节总结

电路系统调试总结

Shell脚本实现检测进程是否正在运行
《Shell脚本实现检测进程是否正在运行.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【Shell脚本实现检测进程是否正在运行(合集6篇)】相关文章:

如何成功清除“熊猫烧香”病毒2022-05-20

Shell中的变量使用小结2022-07-08

linux Shell学习笔记第二天2022-10-22

脚本范文2022-04-29

FTP常用软件servu的安全权限处理WEB安全2022-12-10

基于ARM体系的嵌入式系统BSP的程序设计2022-05-04

由于Nginx漏洞导致的入侵事件WEB安全2023-08-17

SA399第四章读书笔记Windows系统2022-06-03

关于木马隐藏的一个新方法2022-05-07

Win 7常用运行命令总结2022-12-09

点击下载本文文档