Toon posts:

[linux] script, pid

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil in een linux shell script een process opstarten in background en dan de pid daarvan in een var stoppen, maar ik kan nergens vinden hoe dat moet.
Iemand?
met echo $$ kan ik de pid van het script zelf opvragen, maar ik wil de pid hebben van een process dat ik spawn of van het laatst gespawnde process.. Iemand?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 09-01 11:25

D2k

uhm het child zijn eigen PID laten returnen een id?

Doet iets met Cloud (MS/IBM)


  • mvdejong
  • Registratie: Juni 2000
  • Laatst online: 29-11-2024

mvdejong

When does the hurting stop ?

Mogelijkheden :

1. Tijdens het spawnen van het proces wordt het process-id van het sub-proces getoond. Afvangen en opslaan (opstarten tussen back-quotes).

2. ps -ef, vervolgens met grep of nawk die processen eruit vissen waarvoor in de kolom PPID het eigen process-id staat.

The number of things that Arthur couldn't believe he was seeing was fairly large


  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

D2k schreef op 27 september 2002 @ 21:08:
uhm het child zijn eigen PID laten returnen een id?
Maar dan moet het process dat je start dat wel ondersteunen. En als dat geen eigen software is, is het veranderen van zo'n ding vrij omslachtig.

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


Verwijderd

Topicstarter
D2k:
kan het child niet bewerken, dus dat kan ik niet doen

mvdejong
1 backquote pakken de stdout van het programma en niet de pid
een export a=`grep req` bijvoorbeeld blijft evengoed hangen als een export a=`grep req &` en in beide gevallen zou in a hetzelfde komen. met een backquote kan ik dus niet de pid afvangen
2 werkt ook niet, omdat er onmeunig veel van die processen draaien en ik niet weet welke ik moet hebben, omdat ze allemaal dezelfde naam hebben.

  • frim
  • Registratie: Augustus 2001
  • Niet online
gewoon met ps kijken welke processen er geladen zijn, dan na het opstarten van het programma nog een keer ps doen en de andere PID's eruit filteren?

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

frim schreef op 27 september 2002 @ 21:58:
gewoon met ps kijken welke processen er geladen zijn, dan na het opstarten van het programma nog een keer ps doen en de andere PID's eruit filteren?
Dat lijkt me niet al te betrouwbaar als je het gebruikt op bijvoorbeeld een server waar nogal wat progjes op draaien.

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


Verwijderd

Topicstarter
Het gaat hierom:
code:
1
2
3
4
mknod pipe1 p
mknod pipe2 p
grep request -m 1 < pipe1 > pipe2 &
jobs -l | grep request | cut -d \  -f 2

dit werkt wel als ik het achter elkaar intype in een bash script, maar niet als ik het in een file stop. Waarom gaat mij grep dood als ik het in script-file gooi, maar niet als ik het zelf in type.
Pagina: 1