12-19-2016
Quote:
Originally Posted by
SirSalt
Alright, thank you for clarifying that
---------- Post updated 12-18-16 at 09:20 PM ---------- Previous update was 12-17-16 at 10:28 PM ----------
As I meditated on what you said, I thought of something. In your #3 explanation, would the tty be process "A"? Or would the tty in your example be process "B"? I guess I have a slight and subtle confusion about using "fork" and "forked" in the verb context. When you said "You actually forked a child ("B")", was forking the child a result of calling fork() in process "A", or calling fork() in process "B"? I hope you can see what I'm getting at here. :P
In #3, A calls
fork(). At that point you have processes A and B. Then B calls
fork(). At that point you have processes A, B, and C all running the same instructions. Then B calls
exit() leaving you with processes A and C running. Then C calls
execl() (or another function from the
exec family) to replace the instructions C was running with the instructions needed to run the daemon. At that point you then have A running the code it was running and you have C running your daemon.
Note that since C was a child of B and B exited, A cannot use
wait() to determine whether or not C is still running and cannot retrieve the exit status of C using
wait(). (Grandparents do not become the parents of their children's orphaned children when their children die before their grandchildren.)
This User Gave Thanks to Don Cragun For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I'm writing a shell script and I need to replace the contents of a configuration file based on what is passed to the script...can I replace expressions in a file from a bash shell script? (2 Replies)
Discussion started by: HumanBeanDip
2 Replies
2. Shell Programming and Scripting
Hello,
Do you have any idea why the below sed command is also replacing the value of "PARAMETER2" instead of just "PARAMETER" in file1 ?
% parameter=PARAMETER
% new_value=2
% cat file1
PARAMETER=1
PARAMETER2=1
% cat file1 | sed s/*$/${new_value}/1
PARAMETER=2
PARAMETER2=2
Thanks. (3 Replies)
Discussion started by: majormark
3 Replies
3. Shell Programming and Scripting
Hi All,
I have a query on Perl. I have a text file which has 3 lines, i want to only replace the first line with my replaced text and keep the rest of the text. FOr eg
Before change -->
echo:a:pending
echo:b:pending
echo:c:pending
After change --->
echo:a:done
echo:b:pending... (1 Reply)
Discussion started by: tosatesh
1 Replies
4. Shell Programming and Scripting
I'm trying to change the ramfs size in kernel .config automatically.
I have a ramfs_size file generated with du -s
cat ramfs_size
64512
I want to replace the linux .config's ramdisk size with the above value
CONFIG_BLK_DEV_RAM_SIZE=73728
Right now I'm doing something dumb like: ... (3 Replies)
Discussion started by: amoeba
3 Replies
5. Shell Programming and Scripting
Hi,
I have a set of files stored in a single directory that I use to set parameters for a physics code, and I would like to streamline the process of updating them all when I change a parameter. For instance, if the files are called A2000p300ini, A2000p300sub, A2000p300run, and the text in each... (3 Replies)
Discussion started by: BlueChris
3 Replies
6. Shell Programming and Scripting
We have 2 file XML files - FILE1.XML and FILE2.xml - we need copy the contents of FILE1.XML and replace in FILE2.xml pattern "<assignedAttributeList></assignedAttributeList>"
FILE1.XML
1. <itemList>
2. <item type="Manufactured">
3. <resourceCode>431048</resourceCode>
4. ... (0 Replies)
Discussion started by: balrajg
0 Replies
7. Shell Programming and Scripting
I have the following code:
print @testarray;
which returns:
8
8
8
9
How do I return the array like this:
The output is: 8, 8, 8, 9 (5 Replies)
Discussion started by: streetfighter2
5 Replies
8. UNIX for Dummies Questions & Answers
I need to replace all filesnames in a folder as well as its content from AK6 to AK11. Eg Folder has files AK6-Create.xml, AK6-system.py etc.. the files names as well as contents should be changes to AK9-Create.xml, AK9-system.py etc
All files are xml and python scripts.
---------- Post... (0 Replies)
Discussion started by: Candid247
0 Replies
9. UNIX for Dummies Questions & Answers
Hi,
I'm very new to Linux but have been muddling my way through quite happily until recently.
I'm trying to write a program in C++ which starts a new process using the execl command. I am trying to run the tftp process as follows:
char ip_addr = "...";
if (execl("usr/bin/tftp", "tftp",... (2 Replies)
Discussion started by: JoC
2 Replies
10. UNIX for Dummies Questions & Answers
Guys, I have the following code
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/wait.h>
#include <unistd.h>
void read2();
main(int argc, char** argv)
{
int pid,status;
pid=fork();
if ( pid == 0 )
{
read2(argv,... (4 Replies)
Discussion started by: pfpietro
4 Replies
WAIT(2) System Calls Manual WAIT(2)
NAME
wait - wait for process to terminate
SYNOPSIS
wait(status)
int *status;
wait(0)
DESCRIPTION
Wait causes its caller to delay until a signal is received or one of its child processes terminates. If any child has died since the last
wait, return is immediate; if there are no children, return is immediate with the error bit set (resp. with a value of -1 returned). The
normal return yields the process ID of the terminated child. In the case of several children several wait calls are needed to learn of all
the deaths.
If (int)status is nonzero, the high byte of the word pointed to receives the low byte of the argument of exit when the child terminated.
The low byte receives the termination status of the process. See signal(2) for a list of termination statuses (signals); 0 status indi-
cates normal termination. A special status (0177) is returned for a stopped process which has not terminated and can be restarted. See
ptrace(2). If the 0200 bit of the termination status is set, a core image of the process was produced by the system.
If the parent process terminates without waiting on its children, the initialization process (process ID = 1) inherits the children.
SEE ALSO
exit(2), fork(2), signal(2)
DIAGNOSTICS
Returns -1 if there are no children not previously waited for.
ASSEMBLER
(wait = 7.)
sys wait
(process ID in r0)
(status in r1)
The high byte of the status is the low byte of r0 in the child at termination.
WAIT(2)