Sponsored Content
Top Forums Shell Programming and Scripting Getting exit status of child in trap handler Post 302206048 by rimon on Tuesday 17th of June 2008 01:05:35 AM
Old 06-17-2008
In the ouput $? is evaluated to 0. I'm not sure at what point its evaluated, but I've tried this with a function as well, something like:

Code:
function err_handler
{
        echo The child exited  with $?
}

trap err_handler CHLD

And I still got 0 as the value of $? .
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Over-riding TRAP in Child

Hi, I'm using Ksh on HP 10.2. My parent shell script has ignored INT signal using trap command. trap "" 2 3 .... (other signals) This script calls another script in which INT signal should be active and should not be ignored. I browsed the net and found out that in ksh, once a... (1 Reply)
Discussion started by: anijog
1 Replies

2. UNIX for Advanced & Expert Users

Kill all child processes on trap

hi OS: Sun Solaris I have a scenario that when someone presses ctrl-c while executing a shell script, it should not just exit. it should kill all the child processes started by the running shell script only. I am executing many other scripts parallely which in turn fork off more... (2 Replies)
Discussion started by: rakeshou
2 Replies

3. Programming

Usage of exit() inside a signal handler

Is it ok to use exit() inside a signal handler? I catch SIGUSR1 in a signal handler and I try to close a file and then exit. The result is inconsistent. Sometimes the process exit and sometimes it returns to the original state before the signal handler was invoked. Perhaps exit is not legal in... (8 Replies)
Discussion started by: Tuvia
8 Replies

4. UNIX for Dummies Questions & Answers

Exit from n th child shell

Hi, I am using ksh to write my shell script. I need to create multiple-level of nested sub shells in my script. Lets say I have at n th subshell. My question is how do I come out from there to main login shell. If I use 'exit' command then it is exiting from just one subshell and back to... (4 Replies)
Discussion started by: indra_saha
4 Replies

5. Shell Programming and Scripting

TRAP Command --use based on exit criteria

Hi all, I am using the trap command in my script, and I want it to trap the signal based on the exit code the script returns. can anybody tell me how can I use "if loop" for "trap" command. I want to print "terminated by user" if signal is SIGINT or 2 "failure" if signal is not 2 and not 0... (1 Reply)
Discussion started by: grep_me
1 Replies

6. Programming

Why does my child process not exit?

Im sure it has something to do with the wait() call, but everything ive tried either leaves me with a zombie or with the exec executing indefinitely. switch(pid = fork()) { case -1:perror("fork failed"); exit(1); case 0: if(key == "cd") { execl("/bin/cd", "cd",... (2 Replies)
Discussion started by: p00ndawg
2 Replies

7. Shell Programming and Scripting

Trap not working in orphaned child processes

I've search the various posts in these forums, but have not come up with a solution to my problem. I have a parent process that calls a child script, runs it in the background and the parent finishes - without waiting for the child process to complete. Inside the child, a trap is issued to trap... (6 Replies)
Discussion started by: HobieCoop
6 Replies

8. Shell Programming and Scripting

Track Child process exit

hi, I have a job that spawns multiple child processes in background.. Catch is i want to wait for some jobs to finish before i spawn more background processes. (each job creates a file and deletes at the end of it . so i don't want start new jobs after x amount of disk size is used up) now,... (2 Replies)
Discussion started by: ak_saravanan
2 Replies

9. Shell Programming and Scripting

Kill child processes when exit

Hi, I have parent script which is invoking multiple child scripts. I would want to kill all the child processes before the parent process exit. > cat ./parent #!/bin/ksh while do . ./child arg1 & if ; then break fi done Is there a way to get the process group id for all the child... (3 Replies)
Discussion started by: midhun19
3 Replies

10. Programming

Perl: trap signal 'exit': why I am not able to have it work??

First time trying to work with signals in Perl. Reviewing example I try it, but not able to get it work for 'exit'. I hope, I am correct, assuming, that the ending any code by exit $return_code; the $SIG{EXIT} should be de-referenced and processed?! So, I have such code, that, I assume,... (5 Replies)
Discussion started by: alex_5161
5 Replies
PCNTL_WAIT(3)								 1							     PCNTL_WAIT(3)

pcntl_wait - Waits on or returns the status of a forked child

SYNOPSIS
int pcntl_wait (int &$status, [int $options]) DESCRIPTION
The wait function suspends execution of the current process until a child has exited, or until a signal is delivered whose action is to terminate the current process or to call a signal handling function. If a child has already exited by the time of the call (a so-called "zombie" process), the function returns immediately. Any system resources used by the child are freed. Please see your system's wait(2) man page for specific details as to how wait works on your system. Note This function is equivalent to calling pcntl_waitpid(3) with a -1$pid and no $options. PARAMETERS
o $status -pcntl_wait(3) will store status information in the $status parameter which can be evaluated using the following functions: pcntl_wifexited(3), pcntl_wifstopped(3), pcntl_wifsignaled(3), pcntl_wexitstatus(3), pcntl_wtermsig(3) and pcntl_wstopsig(3). o $options - If wait3 is available on your system (mostly BSD-style systems), you can provide the optional $options parameter. If this param- eter is not provided, wait will be used for the system call. If wait3 is not available, providing a value for $options will have no effect. The value of $options is the value of zero or more of the following two constants OR'ed together: Possible values for $options +----------+---------------------------------------------------+ | | | | WNOHANG | | | | | | | Return immediately if no child has exited. | | | | | | | |WUNTRACED | | | | | | | Return for children which are stopped, and whose | | | status has not been reported. | | | | +----------+---------------------------------------------------+ RETURN VALUES
pcntl_wait(3) returns the process ID of the child which exited, -1 on error or zero if WNOHANG was provided as an option (on wait3-avail- able systems) and no child was available. SEE ALSO
pcntl_fork(3), pcntl_signal(3), pcntl_wifexited(3), pcntl_wifstopped(3), pcntl_wifsignaled(3), pcntl_wexitstatus(3), pcntl_wtermsig(3), pcntl_wstopsig(3), pcntl_waitpid(3). PHP Documentation Group PCNTL_WAIT(3)
All times are GMT -4. The time now is 08:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy