Start the scripts in background and with "nohup". see the man page of "nohup" for details.
If you start them this they will no longer stop when the parent process is killed.
That probably won't help, unless the controlling terminal is lost or a SIGHUP is being sent with kill. I assume that he's using either ^C (SIGINT) at the keyboard or a typical kill command (SIGTERM); nohup will not prevent a process from receiving either of these.
Your pid file suggestion is a good one though. Something along the lines of:
Although any external executables running asynchronously at the time that the parent shell receives SIGTERM from kill will linger until they're done. If that's an issue, then a.sh would need to be started asynchronously and any signals sent to its process group (which b, c, a, b ... and further iterations in the cycle would inherit).
Hi everybody,
I'm trying to understand how a parent and child processes interact.
This function( below) basically measures the fork time from the perspective of the parent only.
what i would like to know is how to measure the time from the perspective of parent and child (ie: inserting... (0 Replies)
Hi
I am trying to see if there are some options in ps command or if there is a shell script which basically shows you all the processes spawned by a parent process , then all the processes of its child processes and so on down the hierarchy may be like a tree structure. It might be a generic... (6 Replies)
Hi
I want to do something that might sound strange.
I have a code that in written in C and is executed at startup (it's a custom process). It occasionally calls some bash scripts.
The process doesn't have any terminal associated with it.
One thing I don't know how to do is to start a... (5 Replies)
Hi All,
I have two ksh script. 1st script calls the 2nd script and the second script calls an 'C' program.
I want 1st script to wait until the 'C' program completes.
I cant able to get the process id for the 'C' program (child process) to make the 1st script to wait for the second... (7 Replies)
Hi guys, I'm having some problem here, I'm studying pipes, and i want to create a shell in C and at this point a don't want to use semaphores, instead I want to use tricks. Straight to the doubt: I've a parent and a child process, and both of them has some code to execute, and the child process... (5 Replies)
Hi,
I have a script that calls other scripts/commands which may or may not spawn other process.
From my understanding, when I do a ps -ef, the highest numbered process ID is supposed to be the parent ID of all the other related child processes, is this correct?
In most or all... (3 Replies)
Hi, i want that the parent process start before the child, this code doesn't work,
if the child start before the parent it wait for signal, then the father send the signal SIGALRM and the child catch it and call printf;
else the father call printf and send the signal to the child that call its... (1 Reply)
Hello, everyone.
Here's a program:
pid_t pid = fork();
if (0 == pid) // child process
{
execvp ...;
}
I send a signal (such as SIGINT) to the parent process, the child process receive the signal as well as the parent process.
However I don't want to child process to receive the... (7 Replies)
Hi everyone
i am very new to linux , working on bash shell.
I am trying to solve the given problem
1. Create a process and then create children using fork
2. Check the Status of the application for successful running.
3. Kill all the process(threads) except parent and first child... (2 Replies)
HI i would like to know how i can simulate a shell scripts for my requirement.
example
Server name child Process id Parent Process id
Vpesh 16013 15637
Server name child Process id Parent Process id
Vpesh 16014 15637
Server name child... (1 Reply)
Discussion started by: vpesh
1 Replies
LEARN ABOUT REDHAT
kill
KILL(1) Linux Programmer's Manual KILL(1)NAME
kill - terminate a process
SYNOPSIS
kill [ -s signal | -p ] [ -a ] [ -- ] pid ...
kill -l [ signal ]
DESCRIPTION
The command kill sends the specified signal to the specified process or process group. If no signal is specified, the TERM signal is sent.
The TERM signal will kill processes which do not catch this signal. For other processes, it may be necessary to use the KILL (9) signal,
since this signal cannot be caught.
Most modern shells have a builtin kill function, with a usage rather similar to that of the command described here. The `-a' and `-p'
options, and the possibility to specify pids by command name is a local extension.
OPTIONS
pid... Specify the list of processes that kill should signal. Each pid can be one of five things:
n where n is larger than 0. The process with pid n will be signaled.
0 All processes in the current process group are signaled.
-1 All processes with pid larger than 1 will be signaled.
-n where n is larger than 1. All processes in process group n are signaled. When an argument of the form `-n' is given, and it
is meant to denote a process group, either the signal must be specified first, or the argument must be preceded by a `--'
option, otherwise it will be taken as the signal to send.
commandname
All processes invoked using that name will be signaled.
-s signal
Specify the signal to send. The signal may be given as a signal name or number.
-l Print a list of signal names. These are found in /usr/include/linux/signal.h
-a Do not restrict the commandname-to-pid conversion to processes with the same uid as the present process.
-p Specify that kill should only print the process id (pid) of the named processes, and not send any signals.
SEE ALSO bash(1), tcsh(1), kill(2), sigvec(2), signal(7)AUTHOR
Taken from BSD 4.4. The ability to translate process names to process ids was added by Salvatore Valente <svalente@mit.edu>.
Linux Utilities 14 October 1994 KILL(1)