我有一个bash脚本,它向集群发送许多作业,如下所示:

for i in `seq 1 ${MIN}`

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

prog.x是fortran可执行文件。我想记录下每项工作的pid,这样我就可以
必要时随意杀掉工作。有没有办法,例如,记录pid
nohup.out文件中的编号?

最佳答案

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

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

关于linux - 如何记录在bash脚本中启动的作业的pid,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21788739/

10-10 19:12