精华内容
下载资源
问答
  • 如果您的计划是手动管理进程,您可以保存该PID,并在以后使用它杀死进程,如果需要,通过kill PID或kill -9 PID(如果你需要强制kill)。或者,以后可以通过ps -ef |找到PID grep“命令名称”,并从中找到PID。请注意...

    当使用nohup并将任务放在后台时,后台运算符(&)将在命令提示符处给出PID。如果您的计划是手动管理进程,您可以保存该PID,并在以后使用它杀死进程,如果需要,通过kill PID或kill -9 PID(如果你需要强制kill)。或者,以后可以通过ps -ef |找到PID grep“命令名称”,并从中找到PID。请注意,nohup关键字/命令本身不会出现在相关命令的ps输出中。

    如果你使用脚本,你可以做:

    nohup my_command > my.log 2>&1&

    echo $! > save_pid.txt

    这将运行my_command将所有输出保存到my.log中(在脚本中,$!表示最后执行的进程的PID)。 2是标准错误(stderr)的文件描述符,2>& 1告诉shell将标准错误输出路由到标准输出(文件描述符1)。它需要& 1,以便shell知道它是该上下文中的文件描述符而不是仅仅一个名为1的文件。需要2& 1来捕获通常写入标准错误的任何错误消息到我们的my.log文件(来自标准输出)。有关使用shell处理I / O重定向的更多详细信息,请参阅I/O Redirection。

    如果命令定期发送输出,您可以偶尔使用tail my.log检查输出,或者如果要跟踪它“live”,您可以使用tail -f my.log。最后,如果你需要杀死进程,你可以通过:

    kill -9 `cat save_pid.txt`

    展开全文
  • 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...

    提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。

    当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。

    在某些情况下,你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的情况下使用。比如,你可以使用shell脚本的PID在/tmp下创建一个唯一的临时文件。有时侯脚本需要检测所有运行的进程,它可以从进程列表中排除自身的子shell。

    在bash中,子shell进程的PID存储在一个特殊的变量‘$$’中。这个变量只读,你不可以在脚本中修改它。比如:

    #!/bin/bash

    echo"PID of this script: $$"

    上面的脚本会得到下面的输出:

    PID ofthisscript: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 ofthisscript:6686

    PPID ofthisscript:4656

    UID ofthisscript:1000

    上面输出中,PID每次执行都会变化。这个因为每次运行都会创建一个新的shell。另一方面,PPID每次都会一样只要你在同一个shell中运行。

    对于所有bash内置变量列表,参考man页。

    $ man bash

    展开全文
  • PID或进程ID是标识进程的唯一编号。它们是由Linux内核在运行时创建的,进程调度程序控制着它们的CPU活动。因此,无论何时调用应用程序,内核都会首先产生必要的进程并为它们分配这些唯一的PID值。一个进程可以有多个...

    PID或进程ID是标识进程的唯一编号。它们是由Linux内核在运行时创建的,进程调度程序控制着它们的CPU活动。因此,无论何时调用应用程序,内核都会首先产生必要的进程并为它们分配这些唯一的PID值。一个进程可以有多个PID。此外,每个进程都有一个具有唯一PPID(父进程ID)的父进程。

    所以,如果你能找到这个PPID,那么你就能使用专门为此设计的程序发送一个终止信号。下面,您将了解如何检查Linux中正在运行的进程,并从终端识别它们的PPID。

    您可以使用Linux中的多个进程管理命令(例如pidof,pstree和pgrep)找出一个进程的PPID 。让我们一个接一个地检查它们,看看如何获取Linux进程的PID。

    方法1:使用ps命令

    Linux中的ps命令在终端中显示所有正在运行的进程以及其他与进程相关的信息,例如PID。我们可以使用此命令列出所有进程,然后使用Linux grep命令过滤出特定进程。它应该向我们显示我们感兴趣的进程ID信息。

    $ nano > /dev/null &

    $ ps aux | grep "nano"

    首先,我们在后台调用了Linux文本编辑器。然后,我们将ps命令和grep命令一起使用,以找出该编辑器的PPID。输出可能包含多个进程ID,但是我们只对第一个感兴趣,因为那是我们的PPID。我们还可以使用Linux awk命令来查找此信息,如下所示。

    $ ps aux | awk '/nano/ {print $2}'

    此命令更加灵活,因为它禁止所有不相关的信息。它只会显示我们正在寻找的PPID信息。

    方法2:使用pstree命令

    pstree命令为我们提供了所有正在运行的进程的树状视图。它从终端窗口提供Linux任务列表的图形视图。您可以使用此命令查看PPID以及进程的所有PID信息。查看以下示例,以了解如何利用pstree查找特定进程的PPID。

    $ nano > /dev/null &

    $ pstree -p | grep 'nano'

    $ pstree -p | awk '/nano/ {print $NF}'

    首先,我们使用第一个命令在后台生成了一个进程。然后,第二个命令使用Linux中的grep命令来检索此进程的PPID 。最后,第三个命令向我们展示了如何使用awk命令检索此值。

    方法3:使用pgrep命令

    pgrep命令是Linux中最简单的进程管理命令之一。它检查所有正在运行的进程的列表,并在我们的示例中在标准输出或终端中打印出给定进程的PPID。它通过执行正则表达式匹配工作,非常适合编写Linux Shell脚本。

    $ nano > /dev/null &

    $ pgrep 'nano'

    我们将nano进程的生成与前面的例子类似。然后我们通过使用pgrep命令获得了它的PPID。得到这个值后,我们就可以非常容易地执行Linux的kill工作。

    方法4:使用pidof命令

    pidof命令是确定Linux进程的PPID的另一种简单但有用的方法。它同时显示PPID和与进程关联的所有其他PID。请查看以下内容,了解如何在实践中使用它。

    $ nano > /dev/null &

    $ pidof nano

    $ pidof -s nano

    使用pidof命令检查Linux中正在运行的进程时,通常会看到多个PID。通常,在这种情况下,第一个或最后一个数字是PPID,具体取决于它们是升序还是降序。您可以使用pidof的-s功能来缓解这种情况。它只会显示PPID值。

    方法5:使用top命令

    top命令提供了类Unix操作系统中所有正在运行的进程的实时视图。您可以使用它在终端中显示Linux任务列表,并找出特定进程的PID信息。

    $ top

    使用以下命令从top命令的输出中检索特定进程的PPID。

    $ nano > /dev/null &

    $ top -n1 -b | grep 'nano'

    $ top -n1 -b | awk '/nano/ {print $1}'

    由于top提供实时输出,而不是将静态数据转储到终端,因此我们使用了-n1和-b选项来打印静态输出。然后,您可以在Linux中使用grep命令或awk命令来检索PPID信息。

    展开全文
  • 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...

    提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。

    当我在执行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脚本中获取进程ID的方法

    本文地址: http://www.cppcns.com/os/linux/120964.html

    展开全文
  • linux获取进程id和进程名称作为一个共享库,应该需要统计使用...保存的动作可以采用共享内存,也可以采用文件,这个在下篇博文描述,本文描述如何获取进程id和进程名称。范例:#include #include #define CFGMNG_TA...
  • liunx上获取进程ID和启动参数的命令主要有以下两个:如ps –ef | grep mysql //查看mysql的进程;查看后台运行的进程; 查看用户的UID、GID及所归属的用户组--ps |grep 后面要加要找的进程。是列出主要的进程。而ps...
  • 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到pid。当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...
  • 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...
  • Linux有问必答:如何在脚本中获取进程ID(PID) 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。 当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子...
  • 特别是有时候需要获取进程的pid,但又无法使用第三方库的时候。下面话不多说了,来一起看看详细的介绍吧。方法适用linux平台.方法1使用subprocess 的check_output函数执行pidof命令from subprocess import check_...
  • 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...
  • liunx上获取进程ID和启动参数的命令主要有以下两个:如ps –ef | grep mysql //查看mysql的进程;查看后台运行的进程;查看用户的UID、GID及所归属的用户组--ps |grep 后面要加要找的进程。是列出主要的进程。而ps -...
  • 然后获取到每个进程的进程ID: ps -ef | grep ‘xxxx’ | awk ‘{print $2}’ 最后直接杀死所有grep出来的进程 ps -ef | grep ‘xxxx’ | awk ‘{print $2}’ | xargs kill -9 下面可以杀掉所有xxxx进程,但这会把...
  • Linux如何知道当前进程ID

    千次阅读 2013-08-08 22:28:05
    而getpid这个系统调用实际上在内核中也是通过current来获取进程pid的,那么current是怎么来的呢? 其实,current是根据当前的栈指针计算得来的(具体计算方法这里不详细描述了)。栈指针是在进入内核时设置的,...
  • 获取进程相关的ID头文件函数原型:功能getpid函数getppid函数getuid和getgidfork函数函数原型如何让父子进程做不同的事情?进程复制的原理父子进程各自会执行那些代码?验证子进程复制了父进程的代码和数据 获取进程...
  • 1、可以登上机器,确认下是什么线程使 CPU 飙高。先ps查看 Java 进程的 PID: ...-p 用于指定进程,-H 用于获取每个线程的信息,从 top 输出的内容,可以看到有四个线程占用了非常高的 CPU: 到这里可以拿到1...
  • 1、可以登上机器,确认下是什么线程使 CPU 飙高。...top -p 12309 -H-p 用于指定进程,-H 用于获取每个线程的信息,从 top 输出的内容,可以看到有四个线程占用了非常高的 CPU:到这里可以拿到12313、12312、1231...
  • 如何获取进程的PID(process ID)? 可以使用: #include  pid_t getpid(void);  通过查看头文件说明,可以得到更详细的信息: find /usr/include -name unistd.h    /usr/...
  • 进程,顾名思义,运行中的程序,进程作为操作系统的基本运作单位,每一个进程都有唯一的进程ID,而我们管理进程就是通过这个ID。ps如何查看每个程序的运行状态,就使用ps命令。这里说下父进程和子进程的概念,子...
  • 在父进程中,您想要fork.Fork创建一个全新的进程,并将子进程的pid返回给调用进程,将0返回给新的子进程.在子进程中,您可以使用类似execl的内容来执行所需的辅助程序.在父进程中,您可以使用waitpid等待子进程完成.这是...
  • <p>And since I do not use anything android, just treat the phone as a linux machine, I want the solution to use native linux ways, e.g. by inspect /proc, or by calling any installed android command ...
  • Linux如何查看某个进程的环境变量?

    千次阅读 2018-10-31 09:03:02
    Linux系统上,有一些特殊的变量会被shell环境和操作系统环境用来存储一些特别的值,这类变量就被称为环境变量。环境变量是未在当前进程中定义,而从父进程继承而来的变量。... 获取要查环境变量进程ID号,使用p...
  • 提问: 我想要知道运行中脚本子shell的进程id。我该如何在shell脚本中得到PID。当我在执行shell脚本时,它会启动一个叫子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为...
  • $$ 是脚本运行的当前进程ID号 $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误 区别:$@, $* 相同点:都是引用所有参数 不同点:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(” “)包含...
  • KEY LONG DESCRIPTION c cmd simple name of executable C pcpu cpu utilization f flags flags as in long format F field g pgrp process ...time k utime user time o session session ID p pid process ID 获取列时...
  • 有过Linux下编程经验的朋友一定对如何获取当前进程的进程ID的方法...从官方标准JDK文档中似乎找不到类似getpid一样的方法,而且市面上能找到的教材中也很少提及类似获取进程ID之类的、与平台相关的函数方法。 最近在公
  • 比如我要杀死18080端口号对应的进程,首先我得获取到该进程id,键入命令:lsof -i:18080输出示例:java 7348 root 38u IPv6 117881 0t0 TCP *:18080 (LISTEN)然后想怎么杀就怎么杀了kill -9 7348by Mike Sun @ ...
  • Linux中的每一个进程都有一个唯一的ID,称为PID,使用$$变量就可以获取当前进程的PID。 比如: ccoy@ccoy-PC:~/demo$ echo "Process ID: $$" Process ID: 7518 输出当前进程PID是7518。 $$是Shell中的特殊变量,接...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 148
精华内容 59
关键字:

linux如何获取进程id

linux 订阅