需要检查多个pid是否已完成执行

时间:2018-10-31 04:12:48

标签: bash shell unix pid

pid_list="21232 21231 43432" # same can be put in an array as well

我正在后台运行一堆命令,并使用$ i获得了它的pid。我如何检查它是否完成。

2 个答案:

答案 0 :(得分:0)

尝试一下:

public class TestCircle1 {   
// Main method   
    public static void main(String[] args) {     
// Create two comparable circles     
Circle1 circle1 = new Circle1(5);    
Circle1 circle2 = new Circle1(4); 


    // Display the max circle    
    Circle1 circle = Circle1.max(circle1, circle2);
    System.out.println("The max circle's radius is " + circle.getRadius());    
    System.out.println(circle);    
    System.out.println(circle.equals(new Circle1(5))); 

  } 
} 

如果输出为0,则表示处理已完成。

答案 1 :(得分:0)

有一种方法可以查询ps以获得有关特定PID或PID列表的信息。

这应该可以解决您的问题。如果此命令返回的值不是零,则列表中的至少一个PID仍处于活动状态/未完成。

ps -p $(echo ${pid_list} | sed 's/\ /,/g') | tail -n +2 | wc -l

说明:

  • ps -p接受以逗号分隔的PID列表以获取其信息。
  • sed 's/\ /,/g'用逗号替换空格定界符
  • tail -n +2删除输出中仅是标题的第一行
  • wc -l计算返回的行数。