The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
Kan et barn prosessen tilbake en bestemt verdi i en overordnet prosess? Ametis1970 High Level Programmering 8 04-10-2008 12:22
om barnet prosessen compbug UNIX for Dummies Spørsmål og svar 12 03-22-2006 07:55
gdb til barn prosessen shriashishpatil UNIX for Advanced & ekspertbrukere 4 12-12-2005 07:57
KDM barnet prosessen larryase UNIX for Dummies Spørsmål og svar 6 01-24-2005 05:41
Barneservice Process PID skannan High Level Programmering 2 06-10-2002 08:54

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 Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 05-25-2006
MichLab MichLab is offline
Registrert bruker
  
 

Bli Dato: mai 2006
Innlegg: 4
Smile I ksh, hvordan en in-line barnet sub-prosessen får sin egen PID?

Dette er ikke det samme som noen av de andre posted items håndtere sub-prosess PIDs (som jeg så likevel).

Hvis Zot inneholder:
echo "main mypid: $ $ - lastpid: $!"
(
echo "blokk mypid: $ $ - lastpid: $! - ppid: $ PPID"
ps-ef> xxx
sleep 5
echo "blokk mypid: $ $ - lastpid: $! - ppid: $ PPID"
) &
echo "main mypid: $ $ - lastpid: $! - ppid: $ PPID"
dvale 6
Så: ksh Zot (under Solaris og MKS) resulterer i:
main mypid: 7318 - lastpid:
blokk mypid: 7318 - lastpid: - ppid: 607
main mypid: 7318 - lastpid: 7320 - ppid: 607
blokk mypid: 7318 - lastpid: - ppid: 607
Det overrasker meg at i gaffeldelte barnet prosessen, at $ $ fortsatt returnerer pid av de viktigste prosessen. dvs. både viser $ $ som 7318 - Jeg ville ha forventet at barnet skal ha $ $ være $ 7320. (Du kan ignorere ppid - Jeg ser på beslektede begreper.)

Hvis du gjør: "grep 7320 xxx" får du:
root 7320 7318 0 13:59:45 pts / 9 0:00 ksh Zot
root 7321 7320 1 13:59:45 pts / 9 0:00 ps-ef
som viser tydelig at barnet prosessen, og hvis du var å "kill -9" som pid før 5 sekunder går ut, vil du ikke få den andre blokken linje.

Min intensjon var for barnet prosessen for å spille inn sin egen pid enn foreldrene gjør det på vegne. Jeg innser at foreldre kan bruke $! men hvorfor kan barnet ikke bruke $ $ for sin egen PID? Forresten, hvis du henter kodeblokken og putte den i en egen fil og kalle det, så du får de forventede resultatene.

På forhånd takk for eventuelle innsikter.
Michel
  #2 (permalink)  
Old 05-25-2006
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9131
ksh kompilerer koden og deretter utfører den. The $ $ er borte lenge før gaffelen oppstår. Så erstatte (ting) notasjon med
ksh-c "stuff"

Ikke en flott løsning, men det fungerer.
  #3 (permalink)  
Old 05-25-2006
MichLab MichLab is offline
Registrert bruker
  
 

Bli Dato: mai 2006
Innlegg: 4
Så hvordan vil følgende noensinne arbeid:
xxx \u003d $ (date)
(Plass til 5
xxx \u003d $ (date)
echo $ xxx
) &
echo $ xxx
hvis $ xxx ble overtalt da (...)& blir skannet, da de to echo utsagnene vil alltid vise samme tid, men de har ikke (du kan prøve det). Er du antyder at $ $ er presset av andre regler enn $ xxx?
  #4 (permalink)  
Old 05-25-2006
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9131
Ja. Spesielle parametere og navngitte parametere er forskjellige. Jeg vil legge inn noen eksempler på kode for å bevise dette, men du at du slo meg til det.
  #5 (permalink)  
Old 05-26-2006
MichLab MichLab is offline
Registrert bruker
  
 

Bli Dato: mai 2006
Innlegg: 4
Thumbs up

Takk for innsikt.

Jeg finner oppførselen grensen mutterne forutsatt ulike regler for coercing variabler.

En trolig gyldig definisjon jeg kan tenke på som et alternativ er at "$ $" er per definisjon den første Shells PID i motsetning til den nåværende prosessen er PID, uavhengig av sub-skjell omtrent som PPID er morselskap for første skallet uansett være i en sub-skall eller ikke. Dette er forenlig med et par ksh mann sidene jeg gravd opp men ikke tydelig.

Det synes også å være forenlig med noen eksperimenter Jeg prøvde med "eval" med et sammensatt streng som resulterer i "$ $" som skulle være til hinder for den første analysen av (....)& fra coercing et manifest $ $ og at produserte også samme resultat.

Det ksh behandler ett underskall annerledes fra en gaffelformet forekomst av ksh er konsistent med andre aspekter av atferd (f.eks variabler trenger ikke bli eksportert å bli sett av en sub-skall), men det at søl opp tanken om å bruke inline-koden kontra eksterne skript i en konsekvent måte.

Jeg vil utlede en alternativ strategi (messing med ps-ef er ikke et alternativ fordi min koden må kjøres under Solaris og Windows / MKS der ps forskjellig på grunn av informasjon om prosessen parametere vedlikeholdes av Windows).

Takk igjen.
Michel
  #6 (permalink)  
Old 05-26-2006
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9131
En bedre måte å tenke på det er at "underskall" er ikke garantert å bli en ny prosess. Se nøye på definisjonen av (), og du finner "eget miljø" heller enn "ny prosess". Så lenge ingen bivirkninger forplante seg inn i den overordnede miljø, kan det gjøres uten en gaffel og forking er dyrt. Så dette lar døren åpen for hurtigere implementeringer. Også Dave Korn ønsket ksh å være universell og noen OS er ikke tillat fork (). (De kan ha en spawn () som er som en gaffel () / exec () combo eller noe sånt.)

Uansett, tenkte jeg på en måte å gjøre det ... tror jeg. Bakgrunn for underskall. Har foreldrene få $! og sende den inn i underskall via en navngitt datakanal. Da foreldrene venter på underskall å avslutte.
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 06:22.


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

Content Relevant nettadresser av vBSEO 3.2.0