【问题标题】:Get PID of last executed command (NO BACKGROUND)获取最后执行命令的 PID(无背景)
【发布时间】:2018-01-17 01:47:25
【问题描述】:

我想知道最后执行的命令的 PID。 我经常看到这个:

$ command &
$ pid=$!

但我正在寻找相同的东西,而不是在后台运行命令。

【问题讨论】:

  • 但是如果你不在后台运行它,它会一直执行直到它退出。 PID 将是无用的。你为什么要这么做?
  • 听起来合乎逻辑。我认为这可能很有用,因为我的命令是对另一个脚本的调用。我试试看!
  • @BłażejMichalik,我忘了退出其他脚本中的函数。谢谢!
  • @BłażejMichalik command 可能是在后台生成子进程的进程组负责人,一旦command 退出,脚本的其余部分可能需要向子进程发送信号。

标签: linux bash shell pid


【解决方案1】:

您可以在脚本中使用以下构造:

PID=`sh -c "echo $$; exec your_command -with-arguments"`
echo $PID 

【讨论】:

  • 我用它来启动带有 -daemon 选项的 my_commmand,但我认为如果你需要输出,你可以使用类似 sh -c "echo $$ <super-separator-field>; exec your_command -with-arguments" 和使用 awk 或 grep 的东西
猜你喜欢
  • 2018-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多