如何获取已执行程序的PID?

时间:2019-03-13 14:22:31

标签: bash shell

我要执行一个不在后台运行的命令,我希望它是pid。有直接方法获取pid吗?

我可以做到:

command &
PID="$!"
wait "$PID"

但是它看起来并不优雅。

1 个答案:

答案 0 :(得分:-1)

您可以使用

pgrep <service_name/command_name>

由于您要使命令在后台以与号&运行。

当Die在他们的手册页中介绍此内容时,我经常在此检查有关Die pgrep的问题

  

pgrep浏览当前正在运行的进程,并列出与选择标准匹配到stdout的进程ID。所有条件都必须匹配。

您可以在执行操作时将其输出到变量。 我只是不知道这是否是您在第一种方法中要查找的内容,因为这可能会返回多个PID。

但是$!与任何其他命令一样优雅,甚至更多,尤其是在这种情况下。 您必须认为,是否有效比一切都重要。

您也可以做一些更疯狂的事情。但是出于某种原因,这有点太多了。

ps ax | grep "<service_name" | tr -s " " ":" | cut -f 2 -d ":"