我要执行一个不在后台运行的命令,我希望它是pid。有直接方法获取pid吗?
我可以做到:
command &
PID="$!"
wait "$PID"
但是它看起来并不优雅。
答案 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 ":"