如何使用shell脚本等待另一个进程直到它在Linux中完成

时间:2018-06-15 06:47:22

标签: linux shell dpkg

我正在尝试在Ubuntu机器上安装sshpass。

当我尝试在Ubuntu上安装sshpass时出现以下错误。

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

以下是使用/ var / lib / dpkg / lock

查找进程的方法
  1. 使用lsof查找/ var / lib / dpkg / lock

    的过程

    sudo lsof / var / lib / dpkg / lock

  2. COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
    apt     93785 root    4uW  REG    8,1        0 56743 /var/lib/dpkg/lock
    
    1. 使用fuser查找/ var / lib / dpkg / lock
    2. 的过程
       sudo fuser /var/lib/dpkg/lock
      
      /var/lib/dpkg/lock:  93785
      

      我正在尝试以下方法来获取进程ID。但是我得到以下结果,无法获取进程ID。

        

      sudo fuser / var / lib / dpkg / lock | awk -F:' {print $ 1}'

      的/ var / lib中/ dpkg的/锁:    93785

      我想等到持有/ var / lib / dpkg / lock的进程完成。如何使用shell脚本实现?

1 个答案:

答案 0 :(得分:0)

您可以尝试:

wait $! 

它将等待上一个命令。