Trap the EXIT_CODE from a script

Tags
advanced, shell bash, unix & linux - unix commands

Login to Reply

 
Thread Tools Search this Thread
# 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:
rbatte1 (06-22-2018)
# 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:
rbatte1 (06-22-2018)
# 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:
rbatte1 (06-22-2018)
# 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 to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Similar Threads More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
Shell script to find the wrong filename in a path and raise a trap for it ChandruBala73 Shell Programming and Scripting 4 09-05-2014 12:42 PM
Shell script to set trap for finding cron job failures ChandruBala73 Shell Programming and Scripting 5 09-04-2014 11:49 AM
Trap Oracle error in shell script millan Shell Programming and Scripting 1 07-23-2013 03:47 AM
VM trap may work differently than a pure install trap. newuser45 Homework & Coursework Questions 2 05-20-2013 11:14 AM
Use of stty vs trap in script-driven login menu Clovis_Sangrail Shell Programming and Scripting 5 03-15-2012 01:15 PM
KSH script help needed ( nice error trap routine ?) pcpinkerton Red Hat 2 02-13-2012 01:16 PM
SCRIPT TO TRAP ILLEGAL COMBOS gimley Shell Programming and Scripting 2 03-08-2011 11:33 AM
How trap a signal in shell script? crackthehit007 Shell Programming and Scripting 1 07-05-2010 01:17 PM
Want to trap script error and return line number of failure stevekerver Shell Programming and Scripting 3 11-15-2009 08:31 AM
Nullify the effect of Trap command in later part of the script vikas_kesarwani Shell Programming and Scripting 2 07-27-2009 03:19 PM
trap ctrl c in shell script arvindng UNIX for Advanced & Expert Users 2 11-28-2008 11:45 AM
Cntl+z Trap is not detecting ??? Help required to add a trap detection ??? frozensmilz Shell Programming and Scripting 1 10-08-2008 07:15 AM
Trap key press in a script praveenbvarrier Shell Programming and Scripting 3 04-05-2008 05:56 PM
how to use trap command in shell script girish.batra UNIX for Advanced & Expert Users 2 03-25-2008 11:49 AM
Building a better mouse trap, or How many lines of code does it take to trap a mouse? mph Shell Programming and Scripting 4 04-06-2006 05:02 PM
All times are GMT -4. The time now is 09:39 PM.

Unix & Linux Forums Content Copyright 1993-2018. All Rights Reserved.
UNIX.COM Login
Username:
Password:  
Show Password





Not a Forum Member?
Forgot Password?