博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux查询进程ps grep,Linux下通过grep查找指定的进程是否存在
阅读量:5109 次
发布时间:2019-06-13

本文共 1398 字,大约阅读时间需要 4 分钟。

Linux下通过grep查找指定的进程是否存在

Linux下通过grep查找指定的进程是否存在

[var1]

Linux通过命令查找指定的进程是否存在,并返回该进程的PID号。

在程序中可以使用该方法监控指定的程序是否在运行,如果异常退出,可以重新启动指定程序或者系统。

[var1]

2.1 shell脚本代码

#查找指定进程的PID

find_name=s_app #s_app就是要查找的进程名称

pid_val=`ps -ef | grep $find_name | grep -v grep | awk '{print $2}'`

if [ $pid_val > 0 ]

then

echo "查找的进程存在,对应的PID=${pid_val}"

else

echo "查找的进程不存在"

fi

4e5f24560f1b9818439a28ed3a5417c9.png

2.2 C语言代码

#include

#include

#include

//查找指定的进程的PID号并返回

int find_pid(const char *app_name)

{

char cmd_buff[100];

int cnt;

sprintf(cmd_buff,"ps -ef | grep %s | grep -v grep | awk '{print $2}'",app_name);

FILE *fp=popen(cmd_buff,"r");

if(fp==NULL)

{

return -1;

}

cnt=fread(cmd_buff,1,sizeof(cmd_buff)-1,fp);

cmd_buff[cnt]='\0';

pclose(fp);

//判断是否读取到数据

if(cnt==0)

{

return 0;

}

return atoi(cmd_buff);

}

int main(int argc,char **argv)

{

int pid;

//填入要查找的应用程序名称

pid=find_pid("s_app");

if(pid==-1)

{

printf("查找错误,查找程序未能启动.\n");

}

else if(pid==0)

{

printf("查找的进程不存在.\n");

}

else

{

printf("查找的进程PID=%d\n",pid);

}

return 0;

}

829649dec26baf2df9c7be1e1845cb54.png

[var1]

#查找指定进程的PID

find_name=s_app

while :

do

pid_val=`ps -ef | grep $find_name | grep -v grep | awk '{print $2}'`

if [ ${pid_val} > 0 ]

then

echo "查找的进程存在"

else

echo "查找的进程不存在"

#重新启动

/mnt/hgfs/linux-share-dir/linux_c/s_app 8080 &

fi

sleep 10

done

为了方便启动该脚本,可以在执行程序里增加一行代码,将启动代码追加到系统启动文件里去:

grep -q "/home/wbyq/find_pid.sh &" /home/wbyq/.profile||echo "/home/wbyq/find_pid.sh &" >> /home/wbyq/.profile

Linux下通过grep查找指定的进程是否存在相关教程

转载地址:http://ahjdv.baihongyu.com/

你可能感兴趣的文章
mysql基础语句
查看>>
Oracle中的rownum不能使用大于>的问题
查看>>
cassandra vs mongo (1)存储引擎
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
遍历Map对象
查看>>
MySQL索引背后的数据结构及算法原理
查看>>
#Leetcode# 209. Minimum Size Subarray Sum
查看>>
SDN第四次作业
查看>>
DM8168 DVRRDK软件框架研究
查看>>
django迁移数据库错误
查看>>
yii 跳转页面
查看>>
洛谷 1449——后缀表达式(线性数据结构)
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
Dirichlet分布深入理解
查看>>
(转)Android之发送短信的两种方式
查看>>
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
获得进程可执行文件的路径: GetModuleFileNameEx, GetProcessImageFileName, QueryFullProcessImageName...
查看>>
证件照(1寸2寸)拍摄处理知识汇总
查看>>