确定任务的 PID

确定任务的 PID

我需要能够根据另一个进程是否正在运行来运行或不运行脚本。该进程是第三方图像处理软件 DenseCap。有没有办法执行wait您不知道其 PID 而只知道其名称的任务?当我运行时ps -ef,这是进程:

usr        4638   4536 93 14:57 pts/8    00:00:05 /home/usr/torch/install/bin/lu

我需要不运行某个脚本正在运行,但某个脚本需求当 DenseCap 不运行时,它会运行。我不知道如何检索它的 PID。基本上,我有一个运行 DenseCap 的脚本,还有另一个运行某个进程的脚本,该进程在 DenseCap 运行时实际上不应该运行。有一个脚本同时运行它们。我不知道该怎么做。如果您需要查看代码,我可以发布它。

答案1

好吧,总之,该pgrep命令会很有帮助,因为您知道所讨论的命令的名称。

pgrep -l <name_of_command>

将列出名称和PID以便您可以在脚本中使用它。

看:man pgrep

答案2

您还可以使用以下命令,并使用显示和ps的选项。按此顺序将是该行的第一部分。pidcmdpid

ps -eo pid,cmd | grep <name> | grep -v grep

我喜欢使用这个的唯一原因是,以防我需要通过交换机找到一个命令,该命令正在像使用类似东西的隧道一样运行CfND,但我可能有额外的 ssh 会话正在运行。

例子:

terrance@terrance-ubuntu:~$ ps -eo pid,cmd | grep CfND | grep -v grep
14908 ssh -CfND 4242 [email protected]

希望这可以帮助!

相关内容