[Ubuntu] last process ID wordt steeds verhoogd met 1

Pagina: 1
Acties:
  • 143 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 17:45

Robtimus

me Robtimus no like you

Topicstarter
Ik kom net iets vreemds tegen op een Ubuntu server hier, met het uitvoeren van een script dat ervoor moet zorgen dat een service gestart wordt.

Stukje code uit het script:
code:
1
2
commando &
PID=$!

PID zou hierbij dus de ID moeten zijn van het process dat het commando uitvoert. Dit lijkt ook wel te kloppen, alleen als ik daarna met ps kijk is de process ID 1 hoger 8)7

Ik heb geprobeerd dit op te lossen door de volgende regel toe te voegen:
code:
1
PID=`expr $PID + 1`

Hierna is PID idd met 1 verhoogd. Als ik dan weer met ps kijk is die index WEER met 1 verhoogd!

Iemand enig idee wat hier aan de hand is?

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Welke service gaat het om? En forkt of exect je commando zelf niet al? Processen die door dat proces gestart worden hebben natuurlijk een andere PID dan het proces zelf.

Acties:
  • 0 Henk 'm!

  • Elijan9
  • Registratie: Februari 2004
  • Laatst online: 10-09 21:08
Om welk commando gaat het dan, of wat doet het in elk geval?

Ik heb bijvoorbeeld wel eens gezien dat een ping command zichzelf af forkte, al kan ik dat nu niet reproduceren. Maar hierdoor kreeg deze een steeds andere PID.

Misschien dat in dit geval 'jobs -p' beter werkt?

War is when the young and stupid are tricked by the old and bitter into killing each other. - Niko Bellic


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 17:45

Robtimus

me Robtimus no like you

Topicstarter
Het gaat om ASSP, een anti-spam product.

Het wordt gestart door 'perl /usr/share/assp/assp.pl', en dat is ook exact wat er bij ps te zien is. Dus als het process zichzelf al forkt, dan runt het zichzelf.

jobs ken ik niet, wat doet dat? Zoeken op google geeft niet zoveel informatie, vooral banen ;)

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 08-09 21:46

daft_dutch

>.< >.< >.< >.<

eumm
wat het eerste verhooging doet weet ik niet. mischien wordt er door perl nog een ander process gestart :/
de tweede is zeer verklaarbaar. je krijgt namelijk de pid van het process expr

jobs ken ik ook niet. maar pidof is een normaal proggel wat absuut bestaat in jou systeem
is pidof <process naam> Maar als je meerdere processen met de zelfde naam hebt ben je ook weer lekker ver van 127.0.0.1

[ Voor 10% gewijzigd door daft_dutch op 06-11-2007 23:05 ]

>.< >.< >.< >.<


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 17:45

Robtimus

me Robtimus no like you

Topicstarter
daft_dutch schreef op dinsdag 06 november 2007 @ 23:04:
eumm
wat het eerste verhooging doet weet ik niet. mischien wordt er door perl nog een ander process gestart :/
de tweede is zeer verklaarbaar. je krijgt namelijk de pid van het process expr
Dan zou perl zichzelf dus afsplitsen nadat ik met expr de PID had verhoogd. Fijn...
jobs ken ik ook niet. maar pidof is een normaal proggel wat absuut bestaat in jou systeem
is pidof <process naam> Maar als je meerdere processen met de zelfde naam hebt ben je ook weer lekker ver van 127.0.0.1
Mja, aangezien het process een perl process is wordt dat nogal moeilijk.

Blijkbaar moeten we het gewoon doen met de output van ps, waarmee we kunnen filteren op 'perl assp.pl'

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • blaataaps
  • Registratie: Juli 2001
  • Niet online
Of je laat het script zelf zijn PID ergens wegschrijven.

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

blaataaps schreef op woensdag 07 november 2007 @ 12:39:
Of je laat het script zelf zijn PID ergens wegschrijven.
^^ Dit is eigenlijk wel de methode die de minste fouten gaat opleveren

Acties:
  • 0 Henk 'm!

  • Zwerver
  • Registratie: Februari 2001
  • Niet online
GX schreef op woensdag 07 november 2007 @ 13:15:
[...]

^^ Dit is eigenlijk wel de methode die de minste fouten gaat opleveren
En eigenlijk ook de enige juiste manier ;)

Woonachtig Down Under. Ik negeer je insults niet, maar tegen de tijd dat ik ze lees zijn ze meestal niet relevant meer


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 17:45

Robtimus

me Robtimus no like you

Topicstarter
Mja, het is een 3rd party Perl script, en daar ga ik liever niet mee spelen.

We gaan het gewoon oplossen met de output van `ps ax | grep "perl assp.pl" | grep -v grep | awk '{print $1}'`
Mocht ASSP meerdere keren tegelijk opgestart zijn dan maakt dat niets uit, er mag toch maar 1 instance draaien.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • Elijan9
  • Registratie: Februari 2004
  • Laatst online: 10-09 21:08
IceManX schreef op dinsdag 06 november 2007 @ 16:29:
jobs ken ik niet, wat doet dat? Zoeken op google geeft niet zoveel informatie, vooral banen ;)
Start dan eens met 'man jobs' om meer over 'jobs' te vinden, en anders 'man bash' ;)

War is when the young and stupid are tricked by the old and bitter into killing each other. - Niko Bellic


Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 17:45

Robtimus

me Robtimus no like you

Topicstarter
Elijan9 schreef op woensdag 07 november 2007 @ 21:26:
Start dan eens met 'man jobs' om meer over 'jobs' te vinden, en anders 'man bash' ;)
administrator@ASSP:~$ man jobs
No manual entry for jobs
Alsof ik die nog niet geprobeerd had ;)

Bij bash staat ie wonder boven wonder wel - na 5 minuten gezocht te hebben ;)

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 05-09 17:21

deadinspace

The what goes where now?

IceManX schreef op donderdag 08 november 2007 @ 13:22:
code:
1
2
administrator@ASSP:~$ man jobs
No manual entry for jobs
help jobs
of
man bash
;)

Acties:
  • 0 Henk 'm!

  • Xiphalon
  • Registratie: Juni 2001
  • Laatst online: 15:51
Is het niet gewoon zo dat perl zichzelf fork()'t, en dan een exec() doet?
Pagina: 1