Visit Our UNIX and Linux User Community


Need help with trap


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Need help with trap
# 1  
Old 10-17-2001
Question Need help with trap

My problem is this:

I need to have a catch-all for my processes. An example would be, using a trap, in the parent, to catch any non-0 exit or invalid command (a way to catch core dumps would be cool, too) in not only the parent, but it's children and they're children. Not only that, but I also have to be able to have the same functionalith on anything that the parent or children dot in (functions containted in seperate files). Currently I can only get the trap to operate correctly on one level - parent/child. Also, it doesn't seem like I can create some sort of trap function in a seperate trapfuncs file and have it work. I dot it in and it never sees anything go wrong.

I'd really appreciate any help I could get on this. I'm stuck and can't figure this out for the life of me. I know one of gurus out there must have the answer. P.S. I'm open to any alternatives that don't mean putting blocks of code in every sinlge script and file.

Thanks!
# 2  
Old 10-17-2001
A bit more information would help...

What flavor of UNIX?
Is this a shell script or C program?
If shell script, what shell (sh, ksh, bash, csh)?

In shell's such as bash and ksh, if you execute another
shell script, a new shell is spawned to execute it and
your "trap"s are set to their original values when a child process
is created.

In general, child processes that dump core should return
the value of 127+signal

I don't know if any of this helps but if you can provide more
details of what you have, maybe I (and others) can be of more
help. Smilie
# 3  
Old 10-17-2001
I'm running on AIX, model 000111924C00 (if it helps at all), and when I do a uname -v I get 4. I think we may be running an IBM version or something because 4 seems really low. I'm primarily concerned with shell scripts (all are ksh and dtksh) with minor concerns for C, C++ and COBOL. The minor concers are very minor, though.

I'm not sure how I would trap a value of 127. I thought I could only trap 1-15 and ERR. Would ERR catch the 127?

I hope that this info helps. Please let me know if I can help clear anything up. I really appreciate the help.
# 4  
Old 10-17-2001
OK. AIX and ksh helps my understanding.
If you run... kill -l
...on AIX 4.3.3 you get some 40 distinct signals
you can trap.
The ERR trap will fire whenever a command has
a non-zero return value. Note that this trap
is not inheritied by functions. And of course,
if you execute another shell script, a new shell is spawned to execute it and your "trap"s are set to their original values when a child process
is created.

The 128+signal stuff only applies to the
return value variable "$?" which when a program
is terminated by a signal (i.e. SEGV, BUS, etc)
and dumps core, the value of this signal + 128
is returned in $?

The short of it is... if you want to assure
proper signal handling in your shells, you
should have traps in all your scripts.

Smilie
# 5  
Old 10-18-2001
in ksh you could do something like this:

Code:
#!/usr/bin/ksh
# Functions
function trap_cmd {
echo "Ack, I've been whacked!"
exit 2
}
function trap_segv {
echo "Uh oh, segmentation fault... we may have just dumped core."
exit 127
}
# Error handling
trap 'trap_cmd' 1 2 3 4 5 6 7 8 9 10 12 13 14 15 19 20
trap 'trap_segv' 11
# Dummy command... interrupt with ^C, ^\, ^Z or kill it...
while `true`
do
sleep 5
done

I hope that helps with the handling of multiple different signals, and with placing a function with the trap...

Oh, BTW, these signals are from Linux's kill... yours may vary...
# 6  
Old 10-18-2001
Thanks! It looks like this will help. I'm going to try a few things and post back.

Thanks, again, for your help.
# 7  
Old 10-19-2001
Computer

Thanks a lot! I put the stuff into some functions and everything is working well. The only caveat is that I have to dot the function file into every script (children included) so that it woks correctly.

Thanks again for your help.

Previous Thread | Next Thread
Test Your Knowledge in Computers #448
Difficulty: Medium
Quirky Linux and Puppy Linux were both created by Barry Kauler.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Trap

Hi Ppl, Need help $ cat trap.sh #!/bin/bash trap cleanup 1 2 3 15 cleanup() { echo “I was running \”$BASH_COMMAND\” when you interrupted me.” echo “Quitting.” exit 1 } while : do echo -en “hello. “ sleep 1 (3 Replies)
Discussion started by: heman96
3 Replies

2. Homework & Coursework Questions

VM trap may work differently than a pure install trap.

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: That is the last reply I received from my instructor, and I'm looking for some alternatives. When using... (2 Replies)
Discussion started by: newuser45
2 Replies

3. Shell Programming and Scripting

what does this 'trap' do?

trap "" 1 2 3 Thanks, -dog (1 Reply)
Discussion started by: landog
1 Replies

4. Shell Programming and Scripting

trap

Hi At the beginning of my script, i will create a file and at the end of the script i will delete that. But i got to delete the file even if the process is forcefully killed, or server is rebooted... I think i can make use of trap signal, but couldnt figure out how and where to use in my... (4 Replies)
Discussion started by: vasuarjula
4 Replies

5. Shell Programming and Scripting

Cntl+z Trap is not detecting ??? Help required to add a trap detection ???

Hi folks, I have tried to add some trap detection in the below script....this script is used to monitor database activities...in a rather awkward way :rolleyes:.... The idea behind adding trap is that....this script creates lots of temporary files in the running folder to store the count... (1 Reply)
Discussion started by: frozensmilz
1 Replies

6. Shell Programming and Scripting

How to trap

I have a script #!/bin/ksh trap cleanup 20 cleanup() { cat $t.log echo Caught exit 1 } if ;then echo Found >>t.log exit 20 else echo Not found >>t.log exit 20 fi (5 Replies)
Discussion started by: thana
5 Replies

7. Shell Programming and Scripting

Trap

Hi All "Identify the behavior of traps, mechanism to implement traps in the snmp framework" What does it mean?? Can anybody explain.. Whats this Trap?? Thanx in Advance. (1 Reply)
Discussion started by: jeenat
1 Replies

8. UNIX for Advanced & Expert Users

Need help with trap

Hi Our problem is knowing: What is the "best" way of simulating a TRAP for ERR within a function, since we know this will not work directly with ksh93 and aix5. How can we save the error encountered in the function and then deal with it in the calling script? Thanks! (3 Replies)
Discussion started by: theteeth07
3 Replies

9. Shell Programming and Scripting

Building a better mouse trap, or How many lines of code does it take to trap a mouse?

Hello all, I'm hoping to get a little insight from some of the wily veterans amongst you. I've written a script to check for new outgoing files to our vendors located on our ssl server. It seems to be working ok, but the final question here, will be one of logic, and/or a better way to... (4 Replies)
Discussion started by: mph
4 Replies

10. Shell Programming and Scripting

trap

I'd like to use "trap" command on my unix machine sunOS 5.7. But somehow when I do "which trap" command, it's no where to be found. Any one knows how I can get it installed? Thanks!! (9 Replies)
Discussion started by: whatisthis
9 Replies

Featured Tech Videos