-- Emanuele Lombardi mail: AMB-GEM-CLIM ENEA Casaccia I-00060 S.M. di Galeria (RM) ITALY mailto:lele_at_mantegna.casaccia.enea.it tel +39 6 30483366 fax +39 6 30483591 This transmission was made possible by 100% recycled electrons. #!/bin/csh setenv CMD_ENV bsd #for /usr/bin/echo -n to work # # print tree of PIDs under a given pid # # may be called recursively, if not use level 0 (from command line) if ($#argv != 2) then set level = 0 else set level = $2 endif # # does wished process exist ? set pid = `ps -A -o user,pid,ppid,ucomm | awk -v mypid=$1 -v thispid=$$ '$2==mypid && $2!=thispid {print $1,$4}'` if ($#pid == 0) then echo "no such process" exit endif # # it does exist, print a number of tabs equal to the level minus one if ($level != 0) then set i = 0 loop: _at_ i++ /usr/bin/echo -n "\t" if ($i != $level) goto loop endif # # echo my name and pid echo $1 $pid # # get any sons (ignore the instances of this program) set sons = `ps -A -o user,pid,ppid,ucomm | awk -v mypid=$1 '$3==mypid && $4!="makeprocesstree" {print $2}'` # # no sons if ($#sons == 0) then # echo "no sons" exit endif # # increment level by one _at_ nlevel = $level + 1 # and call recursively for each son foreach i ($sons) makeprocesstree $i $nlevel endReceived on Wed Dec 09 1998 - 11:45:22 NZDT
This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:38 NZDT