05-01-2009
Unable to execute a function using trap
I have a script A which calls script B. I wrote a function in script A to be executed when Kill command is issued for script A and I invoke that function using the trap command.The function identifies all child process running under script A (in this case script B) and kills the child process and performs some operation lets say it updates database tables and log files.
when i execute the "kill -15 script_A_pid" the function that i wrote in script A does not run. I think its because script B (child process) is running.
When i provide kill -15 script_b_pid then child process is terminated and the function that i wrote in script A gets executed.
I would like to know how to execute the function that i wrote in my script Aeven when my script B is running. I want to allways kill script A which should take care of killing script B.
10 More Discussions You Might Find Interesting
1. UNIX for Advanced & Expert Users
this is (11 Replies)
Discussion started by: angelina
11 Replies
2. Shell Programming and Scripting
I am unable to execute the below command in background. Plz suggest.
#> ./test input >out &
913618
+ Stopped (SIGTTIN) ./test input >out &
Suresh (1 Reply)
Discussion started by: suresh3566
1 Replies
3. Shell Programming and Scripting
This is probably a failure in my understanding of trap or of function invocation. I'd really appreciate if someone could explain. This is Solaris 10, but I don't think it matters.
#!/usr/bin/ksh
trap 'cleanUp $@' exit
function cleanUp
{
print "I got called"
}
function check
{
... (4 Replies)
Discussion started by: plavacek
4 Replies
4. Shell Programming and Scripting
In my Bash script I have an exit/cleanup function in a trap statement like:
trap exitCleanup 1 2 3 6 15 25
Is there anyway to capture which signal # has occurred to record in a log file. Please note I am trying to avoid something like:
trap 'mySignal=1; exitCleanup' 1
trap... (1 Reply)
Discussion started by: ckmehta
1 Replies
5. AIX
Hello,
On Aix 5.3, during importvg, the varyonvg fails:
importvg -y vgtest hdisk20
0516-013 varyonvg: The volume group cannot be varied on because
there are no good copies of the descriptor area.
When i use manually the command varyonvg -u -b -t vgtest to force, the vg can... (3 Replies)
Discussion started by: dantares
3 Replies
6. UNIX for Dummies Questions & Answers
Hi everyone.
I wanted to print numbers from 1 to 5 in reverse order. For this I used the following code:
#!/bin/bash
x=5
while
do
echo $x
x=`expr $x - 1`
echo ""
done
echo ""
Well but on compiling the above code, it gives the following error.
... (3 Replies)
Discussion started by: grc
3 Replies
7. Solaris
Hello everyone,
I'm having a problem with a file. I can run any command on it : cp, mv, chmod,ln,more...
Thanks for your help (13 Replies)
Discussion started by: adilyos
13 Replies
8. AIX
Hi Friends,
I am not able to execute snap -a command in AIX 6 system. Could you please let me know how to make work this command and Path to be set.
Thanks in Advance
Siva. (4 Replies)
Discussion started by: sivakumarl
4 Replies
9. Shell Programming and Scripting
Hi
I am writing a script to get the CPU and memory utilization periodically from glance command.
Wrote a script which consists of below two lines
Script name : Utilization.sh
#!/bin/sh
glance -iterations 1 | sed -n '/Util/p/'| awk '!/Disk/'| awk '!/Swap/' >> file.txt
I am able to run the... (5 Replies)
Discussion started by: Shravani
5 Replies
10. UNIX for Advanced & Expert Users
Hi,
I was working on implementing error handling in my bash scripts, and decided to use trap to send myself an email incase of any errors. But it seems that somethings has gone wrong, and I am continuously getting same emails for an old error repeatedly (even though I have stopped/killed all... (1 Reply)
Discussion started by: cool.aquarian
1 Replies
LEARN ABOUT OPENDARWIN
after
after(n) Tcl Built-In Commands after(n)
__________________________________________________________________________________________________________________________________________________
NAME
after - Execute a command after a time delay
SYNOPSIS
after ms
after ms ?script script script ...?
after cancel id
after cancel script script script ...
after idle ?script script script ...?
after info ?id?
_________________________________________________________________
DESCRIPTION
This command is used to delay execution of the program or to execute a command in background sometime in the future. It has several forms,
depending on the first argument to the command:
after ms
Ms must be an integer giving a time in milliseconds. The command sleeps for ms milliseconds and then returns. While the command is
sleeping the application does not respond to events.
after ms ?script script script ...?
In this form the command returns immediately, but it arranges for a Tcl command to be executed ms milliseconds later as an event
handler. The command will be executed exactly once, at the given time. The delayed command is formed by concatenating all the
script arguments in the same fashion as the concat command. The command will be executed at global level (outside the context of
any Tcl procedure). If an error occurs while executing the delayed command then the bgerror mechanism is used to report the error.
The after command returns an identifier that can be used to cancel the delayed command using after cancel.
after cancel id
Cancels the execution of a delayed command that was previously scheduled. Id indicates which command should be canceled; it must
have been the return value from a previous after command. If the command given by id has already been executed then the after can-
cel command has no effect.
after cancel script script ...
This command also cancels the execution of a delayed command. The script arguments are concatenated together with space separators
(just as in the concat command). If there is a pending command that matches the string, it is cancelled and will never be executed;
if no such command is currently pending then the after cancel command has no effect.
after idle script ?script script ...?
Concatenates the script arguments together with space separators (just as in the concat command), and arranges for the resulting
script to be evaluated later as an idle callback. The script will be run exactly once, the next time the event loop is entered and
there are no events to process. The command returns an identifier that can be used to cancel the delayed command using after can-
cel. If an error occurs while executing the script then the bgerror mechanism is used to report the error.
after info ?id?
This command returns information about existing event handlers. If no id argument is supplied, the command returns a list of the
identifiers for all existing event handlers created by the after command for this interpreter. If id is supplied, it specifies an
existing handler; id must have been the return value from some previous call to after and it must not have triggered yet or been
cancelled. In this case the command returns a list with two elements. The first element of the list is the script associated with
id, and the second element is either idle or timer to indicate what kind of event handler it is.
The after ms and after idle forms of the command assume that the application is event driven: the delayed commands will not be executed
unless the application enters the event loop. In applications that are not normally event-driven, such as tclsh, the event loop can be
entered with the vwait and update commands.
SEE ALSO
bgerror(n), concat(n), update(n), vwait(n)
KEYWORDS
cancel, delay, idle callback, sleep, time
Tcl 7.5 after(n)