Sponsored Content
Top Forums UNIX for Advanced & Expert Users VERY confused about forking of child process Post 302169598 by JamesByars on Thursday 21st of February 2008 04:34:55 PM
Old 02-21-2008
Question VERY confused about forking of child process

hi,

I thought that when a child shell is forked, it will inherit all the variables of the parent

now in my .cshrc I have

Code:
setenv X x

then I do at command line

Code:
setenv X y

and X is now y. So far so good!

I then have a very simple script, y.csh

Code:
#!/usr/bin/csh

echo X

Now when I do

Code:
%: y.csh

x gets printed. Why? I thought the child will inherit all the variables of its parent. So it should inherit X as y, yes?

thanks.
 

10 More Discussions You Might Find Interesting

1. Programming

forking a new process

Hi I'm currently working with C on UNIX (HPUX) and need to be able to fork a seperate Java process from within a running C process. I can run the following code from the command line via a script but am having difficulty getting it to work from within the code. I am trying to use execl. Is... (4 Replies)
Discussion started by: themezzaman
4 Replies

2. Programming

forking process.

#include <stdio.h> #include <sys/types.h> #include <unistd.h> int main() { pid_t pID; int i; for (i = 0; i < 3; i++) { pID = fork (); if (pID == 0) { printf ("Value of i --> %d... (2 Replies)
Discussion started by: kymthasneem
2 Replies

3. UNIX for Dummies Questions & Answers

Testing the forking process.

Hey, first time poster and a new UNIX user here. My question is regarding the forking process. I logged in to tty1, and typed the command ls -1 and hit enter. How can i tell that the ls -1 command ran in a subshell? Thanks. (0 Replies)
Discussion started by: Vitamin254
0 Replies

4. UNIX for Advanced & Expert Users

Forking a new process without parent dependance

hi, I want my program to fork a new process and then I want to kill the parent process. The parent program before dying will issue a SIGTERM to all its childs. Which eventually kills all Children. I cant handle the SIGTERM at the child level.:( What I was thinking of was the Parent... (3 Replies)
Discussion started by: tyler_durden
3 Replies

5. Shell Programming and Scripting

Forking a bunch of processes and filling up the process table

I have a bash script that has been used for months here at work for doing an SSH into other machines both Linux and Solaris and running a script on the remote machine. Recently I have started to noticed that things are being left being on the maching doing the SSH. For example.... tivoli ... (1 Reply)
Discussion started by: LRoberts
1 Replies

6. Shell Programming and Scripting

How to make the parent process to wait for the child process

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)
Discussion started by: sennidurai
7 Replies

7. Shell Programming and Scripting

[KSH/Bash] Starting a parent process from a child process?

Hey all, I need to launch a script from within 2 other scripts that can run independently of the two parent scripts... Im having a hard time doing this, if anyone knows how please let me know. More detail. ScriptA (bash), ScriptB (ksh), ScriptC (bash) ScriptA, launches ScriptB ScirptB,... (7 Replies)
Discussion started by: trey85stang
7 Replies

8. Shell Programming and Scripting

script to get child process for a process

!/bin/sh pid=$(ps -Aj | grep MSTRSvr | grep -v grep | awk '{print $1}') sid=$(ps -Aj | grep MSTRSvr | grep -v grep | awk '{print $3}') ps -s "$sid" I am not able to get the desired output it says process list error if i use watch ps -s "$sid" it considers only the first session id (5 Replies)
Discussion started by: schippada
5 Replies

9. Emergency UNIX and Linux Support

signal between parent process and child process

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)
Discussion started by: jackliang
7 Replies

10. Shell Programming and Scripting

forking a child process and kill its parent to show that child process has init() as its parent

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)
Discussion started by: vizz_k
2 Replies
PCNTL_WAITPID(3)							 1							  PCNTL_WAITPID(3)

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

SYNOPSIS
int pcntl_waitpid (int $pid, int &$status, [int $options]) DESCRIPTION
Suspends execution of the current process until a child as specified by the $pid argument 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 as requested by $pid has already exited by the time of the call (a so-called "zombie" process), the function returns immedi- ately. Any system resources used by the child are freed. Please see your system's waitpid(2) man page for specific details as to how wait- pid works on your system. PARAMETERS
o $pid - The value of $pid can be one of the following: possible values for $pid +-----+---------------------------------------------------+ | | | |< -1 | | | | | | | wait for any child process whose process group | | | ID is equal to the absolute value of $pid. | | | | | | | | -1 | | | | | | | wait for any child process; this is the same be- | | | haviour that the wait function exhibits. | | | | | | | | 0 | | | | | | | wait for any child process whose process group | | | ID is equal to that of the calling process. | | | | | | | |> 0 | | | | | | | wait for the child whose process ID is equal to | | | the value of $pid. | | | | +-----+---------------------------------------------------+ Note Specifying -1 as the $pid is equivalent to the functionality pcntl_wait(3) provides (minus $options). o $status -pcntl_waitpid(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 - The value of $options is the value of zero or more of the following two global 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_waitpid(3) returns the process ID of the child which exited, -1 on error or zero if WNOHANG was used 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). PHP Documentation Group PCNTL_WAITPID(3)
All times are GMT -4. The time now is 10:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy