精华内容
下载资源
问答
  • 实际应用中可能有这样的场景:给定一个进程名称特征串,查找所有匹配该进程名称的进程的详细信息。 解决的办法是: (1) 先用pgrep [str] 命令进行模糊匹配,找到匹配该特征串的进程ID; (2) 其次根据进程ID显示...

    实际应用中可能有这样的场景:给定一个进程名称特征串,查找所有匹配该进程名称的进程的详细信息。

    解决的办法是:

    (1) 先用pgrep [str] 命令进行模糊匹配,找到匹配该特征串的进程ID;

    (2) 其次根据进程ID显示指定的进程信息,ps --pid [pid];

    (3) 因为查找出来的进程ID需要被作为参数传递给ps命令,故使用xargs命令,通过管道符号连接;

    (4) 最后显示进程详细信息,需要加上-u参数。

    最终命令形如:

    pgrep java| xargs ps -u --pid

    转载于:https://www.cnblogs.com/xihuanni/p/6638036.html

    展开全文
  • Linux通过命令查找指定的进程是否存在,并返回该进程PID号。 在程序中可以使用该方法监控指定的程序是否在运行,如果异常退出,可以重新启动指定程序或者系统。 二、执行的命令 2.1 shell脚本代码 #查找指定...

    一、功能介绍

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

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

    二、执行的命令

    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

    2.2 C语言代码

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    //查找指定的进程的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;
    }
    

    三、检测指定程序是否存在,不存在就重新启动

    #查找指定进程的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

     

    展开全文
  • 导读pgrep是一个命令行实用程序,根据给定的条件查找正在运行的程序的进程id。它可以是完整的或部分的进程名、运行该进程的用户或其他属性。如何使用pgrep命令语法:pgrep [options] pattern当在没有任何选项的情况...

    导读

    pgrep是一个命令行实用程序,根据给定的条件查找正在运行的程序的进程id。它可以是完整的或部分的进程名、运行该进程的用户或其他属性。

    如何使用pgrep命令

    语法:

    pgrep [options] pattern

    当在没有任何选项的情况下调用时,pgrep将显示与给定名称匹配的所有正在运行的程序的pid。例如,要找到SSH服务器的PID,可以运行以下命令:

    [root@localhost ~]# pgrep ssh

    853

    1063

    1589

    如果想要结束ssh进程,可以使用pkill命令

    [root@localhost ~]# pkill ssh

    pgrep在换行中打印每个匹配的进程ID。-d选项允许指定不同的分隔符。例如,如果想使用空格作为分隔符,运行下面的命令:

    [root@localhost ~]# pgrep ssh -l -d ' ‘

    1654 sssd_ssh1664 sshd1666 sshd

    使用-l选项可以列出PID和进程名称:

    [root@localhost ~]# pgrep -l ssh

    1654 sssd_ssh

    1664 sshd

    1666 sshd

    如果想完全匹配,可以使用:

    [root@localhost ~]# pgrep '^sshd$' -l

    1664 sshd

    1666 sshd

    使用-u选项告诉pgrep显示给定用户正在运行的进程:

    [root@localhost ~]# pgrep -u root -l

    1 systemd

    2 kthreadd

    520 xfsaild/dm-0

    521 kworker/0:1H

    600 systemd-journal

    622 lvmetad

    628 systemd-udevd

    632 rpciod

    634 xprtiod

    659 xfs-buf/sda1

    若要显示与给定条件不匹配的进程,请使用-v选项。下面的命令将打印所有不是由用户“root”运行的进程:

    [root@localhost ~]# pgrep -v -u root -l

    801 dbus-daemon

    802 rpcbind

    810 avahi-daemon

    812 polkitd

    817 avahi-daemon

    820 chronyd

    1282 pickup

    1283 qmgr

    -c选项告诉pgrep只打印匹配进程的数量

    [root@localhost ~]# pgrep -v -u root -l -c

    8

    总结

    pgrep命令用于根据不同的条件查找正在运行的程序的pid。

    展开全文
  • Linux通过grep查找指定的进程是否存在Linux通过grep查找指定的进程是否存在[var1]Linux通过命令查找指定的进程是否存在,并返回该进程PID号。在程序中可以使用该方法监控指定的程序是否在运行,如果异常退出,...

    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查找指定的进程是否存在相关教程

    展开全文
  • linux查询端口-进程

    2019-10-24 10:45:07
    查看端口号 netstat: 如果发现某个端口被占用后,可以用命令查看,该端口到底是被哪个进程所占用。命令如下: netstat -pan | grep ...通过进程名称查找程序: ps -ef | grep pname #其中pname为进程名称 ...
  • 实际上可以使用pkill来杀死进程,只需要进程名称即可。 pkill progress_name 查找对应的进程,不需要使用ps | grep pgrep progress_name 直接向进程发送信号而不需要知晓其pid pkill progress_name ...
  • 按照名称(或者端口)查找进程 ps -ef |grep 名称(或者端口) 按照pid杀掉进程 kill - 9 pid eg:通过redis端口6379查询到进程 可以看到 30917为redis进程端口,通过kill -9 30917 即可结束 2、防火墙开放指定...
  • 一、Linux命令pgrep简单介绍pgrep是linux中常用的通过程序名称来查询进程的工具,一般是用来判断程序是否正在运行及查找正在运行进程PID信息。通过pgrep命令,可以只指定进程的一部分名称从运行进程队列中进行查看...
  • 利用Xshell工具连接服务器利用传统的方式运行Spring Boot项目之后java -jar jar包名,关闭Xshell工具后Spring Boot...最后一项显示的是pid和对应的名称。 2. 杀掉对应的进程,彻底杀死进程。 端口号:kill -9 9006 ...
  • centos查看进程的绝对路径的方法

    万次阅读 2017-04-11 15:09:42
    在使用ps命令和top命令查看进程信息时,只能看到命令的名称,看不到是...在该文件夹下有一个名为exe的文件,该文件指向了具体的命令文件,所以可以通过ls -l或者ll命令根据ps或top查到的PID查找命令的绝对路径,如下
  • linux常用命令

    2018-01-10 17:22:53
    查看端口号如tomcat ps -ax|grep tomcat 杀死进程(pid进程号)如tomcat端口号被...通过文件名称查找文件 find /home -name '*test*' 在/home 查找名称 有test的文件,*代表模糊匹配 安装rpm包 rpm -i ex...
  • 常用Linux命令-收藏版

    2020-09-23 09:57:06
    1.通过进程名称查找进程信息 ps -ef | grep map-matcher(进程名称) xiaoju 3405 41204 0 09:48 pts/1 00:00:00 grep --color map-matcher xiaoju 17634 17631 53 Sep22 ? 07:38:39 bin/map-match-service conf/...
  • linux查看正在运行的所有端口 netstat -ntlp 查看所有被占用的端口号 。 如果发现某个端口被占用...通过进程id查找程序–ps 直接通过:ps -aux | grep pid 查看,进程程序名称, 通过netstat查找端口占用的...
  • pid 进程id user 进程的使用者 %cpu 进程占用cpu的百分比 %eme 内存占用的物理内存百分百 time+ 进程启动后用的总cpu时间 command 启动进程所用到的命令名称 free ps ux 解决cpu占用高问题 利用上述命令去查找 ...
  • 1、查看端口号 netstat 如果发现某个端口被占用后,可以用命令...2、通过进程id查找程序–ps 直接通过:ps -aux | grep pid 查看,进程程序名称PID即是进程号,譬如13727 Java 3、然后再考虑是否KILL 进程号 ...
  • linux端口号占用

    2019-12-13 13:59:55
    问题:项目部署到服务器端口号占用 1.查找被占用的端口 lsof -i:8989 用于查看某一端口的占用...command : 进程名称 pid : 进程标识符 user :进程所有者 fd :文件描述符,应用程序通过文件描述符识别改文件,如...
  • linux中lsof | fuser的用法

    千次阅读 2015-06-21 00:21:17
     通过lsof命令工具可以查看某个进程占用了哪些句柄。同时也可以看某个文件被哪些进程使用了。 2.lsof常见的用法 (A)查找应用程序打开的文件 lsof -p pid 可以查看进程号为pid进程打开了哪些文件或者占用了...
  • 1.找出程序运行的端口: netstat -nlp 查看服务及监听端口 netstat -ntlp netstat -nlp | grep LISTEN ...通过进程id查找程序 ps -aux | grep pid  2.查找文件 find / -name cas.properties 根据名称查找/...
  • 通过进程id查找对应的程序ps -aux | grep pid 查看程序名称 netstat 参数-a或--all:显示所有连线中的Socket; -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; -c或--continuous:...
  • 我们并不能使同学们通过这次系列讲座成为一个 UNIX 类操作系统的高手,这次系列 讲座的目的就是在同学们中间普及 Linux 基础知识,为今后我们更加接近的了解 Linux 做一 个好的开端。 第一讲 Linux基础 在这一...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至在有的系统中会损坏硬件设备(硬盘)。在系统关机前使用 shutdown命令,系统管理员会通知所有...
  • CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 命令大全 1. gpedit.msc-----组策略 ...set 指定环境变量名称=要指派给变量的字符 设置环境变量 set 显示当前所有的环境变量...
  • 操作系统面试题及相关原理 linux查看进程 1.查进程 ps 命令查找进程相关的PID号: ps a 显示现行终端机下的**所有程序...最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定...
  • adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。 所以如果 adbd 以普通权限执行,有些需要 root 权限才能...
  • 2009 达内Unix学习笔记

    2010-02-10 19:45:32
    本来命令是通过键盘得到输入的,但是用小于号,就能够使命令从文件中得到输入。 \ 表示未写完,回车换行再继续。 * 匹配零个或者多个字符。 ? 匹配一个字符。 [] 匹配中括号里的内容[a-z][A-Z][0-9]。 ! 事件...

空空如也

空空如也

1 2
收藏数 29
精华内容 11
关键字:

linux查找pid通过进程名称

linux 订阅