在Unix中使用最低PID终止进程

在Unix中使用最低PID终止进程,unix,Unix,我有两个进程的名称相同,但PID不同。我需要找出这两个进程中PID最低的进程,并将其终止。我该怎么做 有点做作,但这确实奏效(以bash为例): 或 请记住,“最低PID”对于启动顺序来说并不意味着什么,除非您没有足够的进程来再次从最大值到低未使用值。一种更好(可能更复杂)的方法是杀死旧进程或新进程,这取决于哪个进程不好 您可以在这里找到一些灵感Unix,或者带有/proc目录的*nix 如果您支持/proc,请通过/proc/[0-9]+/cmdline进行解析,以查找其命令与您要查找的内容相

我有两个进程的名称相同,但PID不同。我需要找出这两个进程中PID最低的进程,并将其终止。我该怎么做

有点做作,但这确实奏效(以bash为例):

请记住,“最低PID”对于启动顺序来说并不意味着什么,除非您没有足够的进程来再次从最大值到低未使用值。一种更好(可能更复杂)的方法是杀死旧进程或新进程,这取决于哪个进程不好


您可以在这里找到一些灵感

Unix,或者带有/proc目录的*nix

如果您支持/proc,请通过/proc/[0-9]+/cmdline进行解析,以查找其命令与您要查找的内容相匹配的进程;目录名(在/proc之后)是id

opendir()和readdir()将是通过目录进行解析的工具


如果您没有/proc支持,您可以打开(“ps-options-here”,“r”);读取ps的输出(使用适合您的系统的任何选项)以解析进程列表。

是否需要自动解决方案?还是只想通过观察ps的输出来获得pid?
pidof bash | grep -o "[0-9]*" | sort -n | sed '1q'
pidof bash | tr -s " " "\n" | sort -n | sed '1q'