On Wed, Nov 25, 2009 at 6:49 AM, Harry_ <[email protected]> wrote:
>
> And one more thing I would like to ask is about how to get the list of
> processes created by a process. I want this to make sure that all the
> processes created by parent ant process are also killed once I Killed ant
> process. Any way ant can write the output of new processes created into a
> file. Then we can read them and kill them after killing the ant process.
>
I use this in bash for killing the desired process and its child
processes. Some pid's might duplicate in the list that gets sent to be
killed, which is not a problem. ymmv.
function killSubs () {
process_list=`ps -ef`
printf "\n\n'ps' output before PID's were killed: \n$process_list"
>> $stdout_this_script
sub_ids_all=`ps ef -o pid,ppid`
printf "\n\nsub_ids_all: \n$sub_ids_all" >> $stdout_this_script
sub_ids=`ps ef -o pid,ppid | grep $CURRENT_PID | awk '{ print $1 '}`
printf "\n\nsub_ids for $CURRENT_PID: \n$sub_ids" >> $stdout_this_script
# guarantee at least one pid is sent to be killed,
# ideally its also able to find child id's
sub_ids=$CURRENT_PID" "$sub_ids
printf "\n\nsub_ids with CURRENT_PID $CURRENT_PID: \n$sub_ids" >>
$stdout_this_script
while read -ra pid_number; do
for i in "${pid_numb...@]}"; do
child_id=`ps ef -o pid,ppid | grep $i | awk '{ print $1 '}`
printf "\n\nfound child_id: \n$child_id , from ppid: $i " >>
$stdout_this_script
sub_ids=$child_id" "$sub_ids
done
done <<< "$sub_ids"
printf "\n\nkilling child pids: $sub_ids " >> $stdout_this_script
kill -9 $sub_ids >> $stdout_this_script 2>&1
return
}
stdout_this_script="my_logs_`date +%F_%H_%M_%S`.log"
CURRENT_PID=$!
killSubs >> $stdout_this_script 2>&1
- R
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]