10-04-2001
I have the following example in one unix book but some how it is not working as supposed to. I do not see the echo message
echo "Got SIGALRM, cmd took too long." which AlarmHandler should display when timeout. ALthough I have noticed that it is killing the process (sleep 60 &) after the timeout.
Can anybody explain me what step, I am doing wrong ?
Thanks
Sanjay
#! /bin/ksh
AlarmHandler() {
echo "Got SIGALRM, cmd took too long."
KillSubProcs
# exit 14
}
KillSubProcs() {
kill ${CHPROCIDS:-$!}
if [ $? -eq 0 ] ; then echo "Sub-processes killed." ; fi
}
SetTimer() {
DEF_TOUT=${1:-10};
if [ $DEF_TOUT -ne 0 ] ; then
sleep $DEF_TOUT && kill -s ALRM $$ &
CHPROCIDS="$CHPROCIDS $!"
TIMERPROC=$!
fi
}
UnsetTimer() {
kill $TIMERPROC
}
# main()
trap AlarmHandler ALRM
SetTimer 4
# Command to run
# For Testing
sleep 60 &
#
CHPROCIDS="$CHPROCIDS $!"
wait $!
echo $?
UnsetTimer
echo "All Done."
#exit 0
7 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I am trying to develop a script that will properly handle kill signals particularly kill -2. I have program (_progres) that properly receives the signal if I run it from the command line directly:
_progres -T /tmp -p /home/mejones/signal.p -b 2>&1 &
If I try to put it in a script (i.e.... (2 Replies)
Discussion started by: mejones99
2 Replies
2. Programming
We have written a deamon which have many threads.
We are registering for the SIGTERM and trying to close main thread in this signal handling. Actually these are running on Mac OS X ( BSD unix). When we are unloading the deamon with command launchctl, it's sending SIGTERM signal to our process... (1 Reply)
Discussion started by: Akshay4u
1 Replies
3. Programming
I'm writing a function right now, and I want to set an alarm to avoid a timeout, here's the general idea of my code:
int amt = -2;
alarm(10);
amt = read(fd, &t->buf, TASKBUFSIZ - tailpos); //do a read
when the alarm goes off, i want to check the value of "amt"
... (1 Reply)
Discussion started by: liaobert
1 Replies
4. Solaris
I've read the man page of singal(3) but I still can't quite understand what is the difference between SIGINT, SIGALRM and SIGTERM.
Can someone tell me what is the behavioral difference among these 3 signals in kill command?
Thanks! (2 Replies)
Discussion started by: joe228
2 Replies
5. Shell Programming and Scripting
Hello everybody,
I have a little problem with one of my program. I made a plugin for collectd (a stats collector for my servers) but I have a problem to make it run in parallel.
My program gathers stats from logs, so it needs to run in background waiting for any new lines added in the log... (0 Replies)
Discussion started by: Samb95
0 Replies
6. Programming
Hello,
I extracted a list of files in a directory with the command ls . However this is not my computer, so the ls functionality has been revamped so that it gives the filesizes in front like this :
This is the output of ls command : I stored the output in a file filelist
1.1M... (5 Replies)
Discussion started by: ajayram
5 Replies
7. Shell Programming and Scripting
Is it possible to continue after signal is caught and control goes to function specified in the trap statement? (3 Replies)
Discussion started by: Soham
3 Replies
sleep(1) User Commands sleep(1)
NAME
sleep - suspend execution for an interval
SYNOPSIS
sleep time
DESCRIPTION
The sleep utility will suspend execution for at least the integral number of seconds specified by the time operand.
OPERANDS
The following operands are supported:
time A non-negative decimal integer specifying the number of seconds for which to suspend execution.
EXAMPLES
Example 1: Suspending command execution for a time
To execute a command after a certain amount of time:
example% (sleep 105; command)&
Example 2: Executing a command every so often
example% while true
do
command
sleep 37
done
ENVIRONMENT VARIABLES
See environ(5) for descriptions of the following environment variables that affect the execution of sleep: LANG, LC_ALL, LC_CTYPE, LC_MES-
SAGES, and NLSPATH.
EXIT STATUS
The following exit values are returned:
0 The execution was successfully suspended for at least time seconds, or a SIGALRM signal was received (see NOTES).
>0 An error has occurred.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO
wait(1), alarm(2), sleep(3C), wait(3UCB), attributes(5), environ(5), standards(5)
NOTES
If the sleep utility receives a SIGALRM signal, one of the following actions will be taken:
o Terminate normally with a zero exit status.
o Effectively ignore the signal.
The sleep utility will take the standard action for all other signals.
SunOS 5.10 1 Feb 1995 sleep(1)