/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
"Luring" af PID?
Fra : Steen Suder, privat


Dato : 15-10-04 08:39

[Linux]

Jeg søger et program der kan fortælle mig PIDet af det første program i
den efterfølgende kommandolinie.

F.eks. noget i denne retning:
# pidfinder -f minpidfil kommando | kommando2 | kommando3 osv.

Debian har f.eks. start-stop-daemon, men jeg vil gerne finde et
alternativ, da den ikke er helt pålidelig.

pidof dur heller ikke, da den køres "bagefter" og heller ikke er helt
brugbar.

Hvad findes der?

--
Steen Suder
Prøv at forestille dig, at du er en anden, og læs så din artikel igennem
inden du sender den. Alle har interesse i, at du staver og formulerer
dig, så godt du kan. På den måde forstås det lettere, hvad du skriver.

 
 
Peter Makholm (15-10-2004)
Kommentar
Fra : Peter Makholm


Dato : 15-10-04 08:52

"Steen Suder, privat" <sfs_news_spam@suder.dk> writes:

> [Linux]
>
> Jeg søger et program der kan fortælle mig PIDet af det første program
> i den efterfølgende kommandolinie.

I en shell kan du du bruge $!:

[man bash]

Special Parameters
The shell treats several parameters specially. These
parameters may only be referenced; assignment to them is
not allowed.

[...]

! Expands to the process ID of the most recently
executed background (asynchronous) command.

--
Peter Makholm | One thing you do is prevent good software from
peter@makholm.net | being written. Who can afford to do professional
http://hacking.dk | work for nothing?
| -- Bill Gates

Steen Suder, privat (15-10-2004)
Kommentar
Fra : Steen Suder, privat


Dato : 15-10-04 09:10

Peter Makholm wrote:
> "Steen Suder, privat" <sfs_news_spam@suder.dk> writes:
>
>
>>[Linux]
>>
>>Jeg søger et program der kan fortælle mig PIDet af det første program
>>i den efterfølgende kommandolinie.
>
>
> I en shell kan du du bruge $!:
>
> [man bash]

<KLIP>

> [...]
>
> ! Expands to the process ID of the most recently
> executed background (asynchronous) command.

Mit eksempel igen:
# pidfinder -f minpidfil kommando | kommando2 | kommando3 osv.

V. 2:
# kommando1 | kommando2 | kommando3 osv.

Som jeg læser dit citat, vil jeg få PID af kommando3, men jeg vil ha'
kommando1s PID - og jeg vil have det med sikkerhed, hvorfor pidof ikke
er god.

--
Steen Suder
Prøv at forestille dig, at du er en anden, og læs så din artikel igennem
inden du sender den. Alle har interesse i, at du staver og formulerer
dig, så godt du kan. På den måde forstås det lettere, hvad du skriver.

Thorbjoern Ravn Ande~ (15-10-2004)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 15-10-04 08:53

"Steen Suder, privat" <sfs_news_spam@suder.dk> writes:

> # pidfinder -f minpidfil kommando | kommando2 | kommando3 osv.

Hvad er scenariet? kommando kører meget længe?

Der findes nogen konstruktioner i sh som kan fortælle dig diverse
pid'er.

(ls && echo $$)-lignende.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk - Unix, Java, Web, Netværk, Århus

Steen Suder, privat (15-10-2004)
Kommentar
Fra : Steen Suder, privat


Dato : 15-10-04 09:21

Thorbjoern Ravn Andersen wrote:
> "Steen Suder, privat" <sfs_news_spam@suder.dk> writes:
>
>
>># pidfinder -f minpidfil kommando | kommando2 | kommando3 osv.
>
>
> Hvad er scenariet? kommando kører meget længe?

Typisk fem sekunder - hvis den holder sig til de afstukne rammer.

> Der findes nogen konstruktioner i sh som kan fortælle dig diverse
> pid'er.
>
> (ls && echo $$)-lignende.

I mit eksempel er "kommando" problemet - den kan finde på at "hænge".
Dens output skal umiddelbart bruges i kommando2 osv.

Jeg antager at det er de samme konstruktioner, som Peter Makholm
refererer til tidligere i tråden, du henviser til.

Jeg overvejede at pakke det ind i Perl, for at opnå hvad jeg vil, men
jeg har ikke fundet en brugbar løsning.

--
Steen Suder
Prøv at forestille dig, at du er en anden, og læs så din artikel igennem
inden du sender den. Alle har interesse i, at du staver og formulerer
dig, så godt du kan. På den måde forstås det lettere, hvad du skriver.

Thorbjoern Ravn Ande~ (15-10-2004)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 15-10-04 09:33

"Steen Suder, privat" <sfs_news_spam@suder.dk> writes:

> Thorbjoern Ravn Andersen wrote:
> > "Steen Suder, privat" <sfs_news_spam@suder.dk> writes:
> >
> >># pidfinder -f minpidfil kommando | kommando2 | kommando3 osv.
> > Hvad er scenariet? kommando kører meget længe?
>
> Typisk fem sekunder - hvis den holder sig til de afstukne rammer.

Det vil sige at det du har brug for, er en wrapper som slår dit
program ned, hvis det har kørt for længe.

Jeg fandt følgende på google

http://www.sunmanagers.org/archives/1995/1330.html
http://www.innodb.com/innobackup.txt

Alternativt kan

(ulimit -t 5 && kommando)

måske gøre det?
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk - Unix, Java, Web, Netværk, Århus

Kim Hansen (15-10-2004)
Kommentar
Fra : Kim Hansen


Dato : 15-10-04 09:37

"Steen Suder, privat" <sfs_news_spam@suder.dk> writes:

> [Linux]
>
> Jeg søger et program der kan fortælle mig PIDet af det første program
> i den efterfølgende kommandolinie.
>
>
> F.eks. noget i denne retning:
> # pidfinder -f minpidfil kommando | kommando2 | kommando3 osv.

Noget i stil med:
-------------
#!/bin/bash
# Brug: pidfinder pidfil program
echo $$ > $1
exec $2
-------------

Det kan helt sikkert gøres bedre mht brug af parametre med mellemrum
og argumenter til program.

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Vadgårdsvej 3, 2.tv. | /,`.-´` -. ;:-. | Jeopardy.
2860 Søborg | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 39 56 24 37 | '---''(_/--' `-'\_) | spørgsmålet.

Kasper Dupont (15-10-2004)
Kommentar
Fra : Kasper Dupont


Dato : 15-10-04 12:00

Kim Hansen wrote:
>
> Noget i stil med:
> -------------
> #!/bin/bash
> # Brug: pidfinder pidfil program
> echo $$ > $1
> exec $2
> -------------
>
> Det kan helt sikkert gøres bedre mht brug af parametre med mellemrum
> og argumenter til program.

Mit første forslag til en forbedring ville være
noget i retning af:

#!/bin/bash
# Brug: pidfinder pidfil program
echo $$ > "$1"
shift
exec "$@"

--
Kasper Dupont

Steen Suder, privat (15-10-2004)
Kommentar
Fra : Steen Suder, privat


Dato : 15-10-04 12:14

Kasper Dupont wrote:
> Kim Hansen wrote:
>
>>Noget i stil med:
>>-------------
>>#!/bin/bash
>># Brug: pidfinder pidfil program
>>echo $$ > $1
>>exec $2
>>-------------
>>
>>Det kan helt sikkert gøres bedre mht brug af parametre med mellemrum
>>og argumenter til program.
>
>
> Mit første forslag til en forbedring ville være
> noget i retning af:
>
> #!/bin/bash
> # Brug: pidfinder pidfil program
> echo $$ > "$1"
> shift
> exec "$@"

Til Kim og Kasper: det ser jo fint ud. Jeg vil rode lidt videre med det.

Dog synes jeg at det er lidt ligesom at snyde - som når min kone trykker
pause i Tetris, for at bestemme sig for hvor brikken skal placeres

Men så lang tid, det virker...

--
Steen Suder
Prøv at forestille dig, at du er en anden, og læs så din artikel igennem
inden du sender den. Alle har interesse i, at du staver og formulerer
dig, så godt du kan. På den måde forstås det lettere, hvad du skriver.

Kasper Dupont (15-10-2004)
Kommentar
Fra : Kasper Dupont


Dato : 15-10-04 16:00

"Steen Suder, privat" wrote:
>
> Dog synes jeg at det er lidt ligesom at snyde

Hvad mener du? Jeg kan ikke få øje på noget snyd.

--
Kasper Dupont

Jacob Bunk Nielsen (15-10-2004)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 15-10-04 15:03

"Steen Suder, privat" <sfs_news_spam@suder.dk> writes:

> I mit eksempel er "kommando" problemet - den kan finde på at "hænge".
> Dens output skal umiddelbart bruges i kommando2 osv.

Har du prøvet at kigge på timeout?

<http://packages.debian.org/stable/admin/timeout>

--
Jacob - www.bunk.cc
The world is coming to an end. Please log off.

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste