如何记录在bash脚本中启动的作业的pid

时间:2014-02-14 20:14:34

标签: linux bash shell process parallel-processing

我有一个bash脚本,可以将许多作业发送到集群,它看起来像这样:

for i in `seq 1 ${MIN}`

do
  cd longjob_${i}/
  make
  nohup ./prog.x &
done

prog.x是一个fortran可执行文件。我想记录每份工作的pid,所以我可以 在需要时随意杀死工作。有没有办法做到这一点,例如,记录pid nohup.out文件中的数字?

1 个答案:

答案 0 :(得分:1)

变量$!包含已启动的上一个后台作业的PID:

for i in `seq 1 ${MIN}`
do
  cd longjob_${i}/
  make
  nohup ./prog.x &
  echo $! >> ~/pids.txt
done