我有发送许多作业集群中的bash脚本启动时,它看起来是这样的:如何记录工作(一个或多个)的PID在bash脚本
for i in `seq 1 ${MIN}`
do
cd longjob_${i}/
make
nohup ./prog.x &
done
prog.x
是一个Fortran可执行文件。我想记录每个工作的PID,所以我可以在需要时随意杀死工作。有没有办法做到这一点,例如,在nohup.out
文件中记录pid 号码?
我有发送许多作业集群中的bash脚本启动时,它看起来是这样的:如何记录工作(一个或多个)的PID在bash脚本
for i in `seq 1 ${MIN}`
do
cd longjob_${i}/
make
nohup ./prog.x &
done
prog.x
是一个Fortran可执行文件。我想记录每个工作的PID,所以我可以在需要时随意杀死工作。有没有办法做到这一点,例如,在nohup.out
文件中记录pid 号码?
变量$!
包含最后启动的后台作业的PID:
for i in `seq 1 ${MIN}`
do
cd longjob_${i}/
make
nohup ./prog.x &
echo $! >> ~/pids.txt
done
的
假设我发送的作业没有行echo $! >>〜/ pids.txt。在这种情况下是否有办法检索pid? – user2820579
您可以使用'ps'查找所有进程。 – Barmar
可能重复[获取进程的PID开始通过ssh的nohup(http://stackoverflow.com/问题/ 12647382/get-the-pid-a-process-started-with-nohup-via-ssh) –