想监视后台任务

想监视后台任务

用户会用crtl-z暂停任务,想做一脚本,login 执行该脚本,log out kill 该脚本
想用jobs列出暂停任务用bg jobid 带回前台。
但是遇到一个问题, 脚本必须在同一个shell中执行才能看到jobs的输出。
所以只能这样调用 . /usr/globaltools/catt/bin/a.sh (用.)
不能              /usr/globaltools/catt/bin/a.sh

当我执行. /usr/globaltools/catt/bin/a.sh,脚本可以工作,
但是. /usr/globaltools/catt/bin/a.sh&不行, 如何解决这个问题?


#!/bin/bash
while true
do
for cmd in `jobs | awk '/Stopped/&&/accli/ {gsub(/[^0-9]+/,"",$1);print $1}' `; do
  echo "******* run bg " $cmd "**********************";
  `bg $cmd`;
done

sleep 20;
echo "sleep 20"
done
换句话说,就是

执行 a.sh& 但是不让他产生child shell