Sponsored Content
Full Discussion: Signal Processing
Top Forums UNIX for Dummies Questions & Answers Signal Processing Post 8011 by sanjay92 on Thursday 4th of October 2001 03:23:10 PM
Old 10-04-2001
Network

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
sanjay92
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script Signal Processing

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

Signal processing

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

alarm signal processing

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

Signal Processing in unix

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

How to make parallel processing rather than serial processing ??

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

awk processing / Shell Script Processing to remove columns text file

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

Continue Processing after a signal is caught

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)
All times are GMT -4. The time now is 01:50 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy