Trap the EXIT_CODE from a script


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Trap the EXIT_CODE from a script
# 1  
Old 06-21-2018
Trap the EXIT_CODE from a script

Hi All,

I have a script which calls SQLPLUS and do some data cleanup. But sometimes the SQL hangs and the script keeps on running.
In that case, we kill the script using "kill" command, but as soon as we kill the script it exists with a non zero exit code which makes the job fail( we have a checking for non zero exit code).
this we want to avoid. Is there any way, where we can trap the exit code and change it to 0 so that it completes successfully.
I want to accomplish it without making changes in the script., I would like to do it from outside from the same unix console.

Can you please let me know if it's possible? like using the TRAP command?
# 2  
Old 06-21-2018
Could you share the script, or at least a cut-down version that illustrates your issue? (perhaps with a long sleep in it)

If not, then it's a bit difficult to help.


Kind regards,
Robin
# 3  
Old 06-21-2018
I'm afraid you won't be able to do it without changing the script. Yes, you can trap e.g. the SIGTERM signal and exit gracefully, but you need to make sure you intercept all ramifications.
# 4  
Old 06-22-2018
Good comment from Robin.


Instead of using SIGTERM you can use other signal.
Following comment is only a sample:
C or CPP code using SIGUSR1 signal
  1. when receiving SIGUSR1 it is writing information to log file
  2. executing the script using system call in child process.
  3. parent process waiting for child process
  4. when parent process receive SIGUSR1 signal, writing current status to log file.

Last edited by rbatte1; 06-22-2018 at 09:34 AM.. Reason: Formatted numbered list with LIST=1 tags
This User Gave Thanks to murugesandins For This Post:
# 5  
Old 06-22-2018
Quote:
Originally Posted by RudiC
I'm afraid you won't be able to do it without changing the script.
I beg to differ: the script in question has to be called from somewhere to be started. Write a "wrapper script" so that your script is called which always exits with 0 regardless of what happens. Then replace the call of the original script with the wrapper script. The exit code for the original script would be reported to the wrapper script and nobody else. If this chooses to ignore it than it is ignored.

To be honest, doing it by changing the original script as RudiC suggested would be by far the cleaner and better solution still. But in case you can't change the script for whatever reason this might be a work-around.

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
# 6  
Old 06-22-2018
Quote:
Originally Posted by bakunin
I beg to differ: the script in question has to be called from somewhere to be started. . . .
Yes, that - if I read post#1 correctly - is a job, i.e. a script, program, or cron entry, calling the script in question, neither of which shalt be modified.


Quote:
Then replace the call of the original script with the wrapper script. . . .
The only way to do so would be to rename the original script and put a wrapper script with its name in its place, and then call the new name - horrifying picture to be documented.


But - as long as we don't get additional context info all this is sheer guesswork.

Last edited by RudiC; 06-22-2018 at 08:51 AM..
This User Gave Thanks to RudiC For This Post:
# 7  
Old 06-22-2018
Of course, renaming the original might cause problems. I had to intercept calls to usermod etc. on an old HPUX server once so we could log what was being called. The original (compiled) code was hard-linked for several functions (usermod, useradd, etc.) and reacted differently depending on what name was used to call it.


Perhaps we could suggest many ways of accomplishing this (e.g. with trap or other coding changes) but until we can see what is being called, we're all going to be stuck.


Assuming something checks the value of $? then you could simply add a : or true after the call that may get killed off. Of course, then you don't know when it may have genuinely failed. We need to see (enough of) your code to give you something useful.




Kind regards,
Robin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Trap Oracle error in shell script

sqlplus -s usrname/password@dbSID <<-SQL >> logfile @create_table.sql commit; quit; SQL I am running this script to execute an sql file. I want to display the oracle error if anything found during execution of the sql file and exit from script. Please suggest How do it. (1 Reply)
Discussion started by: millan
1 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

Use of stty vs trap in script-driven login menu

My employers would like me to selectively run one of several different (already-existing) Korn Shell menu-driven scripts out of the user's .profile file, depending on some yet-to-be-specified user critieria. I've never done this kind of thing, but I have the existing scripts (among other... (5 Replies)
Discussion started by: Clovis_Sangrail
5 Replies

4. Shell Programming and Scripting

SCRIPT TO TRAP ILLEGAL COMBOS

Hello, I am trying to identify names which are "illegal" in the sense that they do not comply with the spelling norms of a culture. I have written NGrams for initial and final combos which are illegal. These are lists stored in 2 files named Initial and Final. Here are few... (2 Replies)
Discussion started by: gimley
2 Replies

5. Shell Programming and Scripting

How trap a signal in shell script?

Hi , i have a scenario where...i have to put a check where if script is executing more than 15mins i have to kill that script and n retry again 2nd time. i this case i can use background process to do it but i feel trap will be the efficent way to do so... but i dont know much about it... (1 Reply)
Discussion started by: crackthehit007
1 Replies

6. Shell Programming and Scripting

Nullify the effect of Trap command in later part of the script

Hi All, i have an issue regarding trap command. i have specified trap function in the beginning of the script to catch some signals but in the later part of the script i want to remove the effect of this. Can anybody help me out of this. for e.g. pressing Ctrl+C for the first time should... (2 Replies)
Discussion started by: vikas_kesarwani
2 Replies

7. UNIX for Advanced & Expert Users

trap ctrl c in shell script

how to trap the ctrl c in unix shell script my script is running in while loop it should not be terminate with ctrl c. if i press ctrl c while running script it shloud ignore the same. please healp.......... thanks in advance (2 Replies)
Discussion started by: arvindng
2 Replies

8. 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

9. Shell Programming and Scripting

Trap key press in a script

How can I trap a character press in the shell script. For eg:- I have a script runinng a infinite loops , I will need to quit if q is pressed. I have seen the traping the signal , but they give option only for traping the defined interrupt signals. But those does not help me here. (3 Replies)
Discussion started by: praveenbvarrier
3 Replies

10. UNIX for Advanced & Expert Users

how to use trap command in shell script

Right now I have implemented autossh between ServerA & ServerB which are sun solaris based. I have made this shell script. I am facing one problem which I am going to discuss now. The problem is when I sftp some files (suppose there is 10 files I have to transfer through sftp) from one server to... (2 Replies)
Discussion started by: girish.batra
2 Replies
Login or Register to Ask a Question