The UNIX and Linux Forums  
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.

Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com



Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here.

More UNIX and Linux Forum Topics You Might Find Helpful
Thread Thread Starter Forum Replies Last Post
How to insert child job under a box job? xejatt UNIX for Dummies Questions & Answers 4 03-12-2008 04:08 PM
about child process compbug UNIX for Dummies Questions & Answers 12 03-22-2006 07:55 PM
gdb to child process shriashishpatil UNIX for Advanced & Expert Users 4 12-12-2005 07:57 AM
KDM child process larryase UNIX for Dummies Questions & Answers 6 01-24-2005 05:41 PM
Child Process PID skannan High Level Programming 2 06-10-2002 08:54 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
  #1 (permalink)  
Old 08-30-2007
dhams dhams is offline
Registered User
  
 

Join Date: Aug 2007
Posts: 12
child pid in ZSH

I am using ZSH shell in Linux.

I am calling a child program in background mode parallely (say 2-3 threads). I have problem in handling the temporary files of these child programs since the temp file names are unique for all the child process.

To distinguish i want to use the pid in the temp files. But when I use the $$ to fetch the pid it is same across all the chils process since the obtained pid is of the master program which called all these.

Could anyone help me to identify the PID of the current child process so taht i cann append in the temp file names. From the previos threads i saw there is a function called getpid() to get the pid. But am not sure of the usage..
  #2 (permalink)  
Old 08-30-2007
porter porter is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2007
Posts: 2,965
When you spawn a child process (not a thread), the pid of the process should be in $!

eg

Code:
$ echo &
[1] 21616

[1]+  Done                    echo
$ echo $!
21616
  #3 (permalink)  
Old 08-30-2007
dhams dhams is offline
Registered User
  
 

Join Date: Aug 2007
Posts: 12
Porter,

Thanks for your response.

I think i am not clear in my question.

Actually i am calling another shell script say xyz.sh in the master program abc.sh in a loop for n number of times in the background mode.

The $$ value gives the PID of the master script in the sub program and hence i am not able to use the pid of the script for naming temp files which gets clashed with the temp files of the other parallely running same sub programs running in background.


Actually in ZSH if i use $! i get 0 as result.
  #4 (permalink)  
Old 08-30-2007
porter porter is offline Forum Advisor  
Registered User
  
 

Join Date: Jan 2007
Posts: 2,965
Quote:
Originally Posted by dhams View Post
Actually in ZSH if i use $! i get 0 as result.
zsh behaves the same way, spawn a child using & and $! is set to the pid of the child.
Closed Thread

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On




All times are GMT -4. The time now is 08:59 PM.


Powered by: vBulletin, Copyright ©2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
The UNIX and Linux Forums Content Copyright ©1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant URLs by vBSEO 3.2.0