【问题标题】:Bash get process ID of a process started in subshellBash 获取在 subshel​​l 中启动的进程的进程 ID
【发布时间】:2014-01-01 15:24:35
【问题描述】:

我在这里查看这个问题,但它似乎对我不起作用:How to get the process id of a bash subprocess on command line

所以我有一个在子shell中启动的命令,例如:

(sleep 10 &)

然后我怎样才能获得该睡眠命令的进程 ID,并等待它?

如果我在上面链接中的所有进程 ID 都与我看到的不匹配之后执行 ps。

谢谢。

【问题讨论】:

    标签: bash shell process subshell


    【解决方案1】:

    父进程是唯一可以正确等待子进程完成的进程,因此您需要从子shell 进行等待。

    (sleep & wait)
    (sleep & pid=$!; wait $pid)
    

    【讨论】:

    • 或者不要一开始就创建子shell——省略括号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多