[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Checken, ob ein (Perl-)Skript schon läuft



On 04/26/2012 05:46 PM, David Haller wrote:
> Hallo,
> 
> Am Thu, 26 Apr 2012, David Raab schrieb:
> [>Michael Lange schrieb:]
>>> Na, eben weil - wie gesagt - pidof versagen wird, sobald dein Skript
>>> nicht direkt, sondern über $ perl <skriptname> aufgerufen wird;
>>
>> Es ist übrigens volkommen egal ob man das Skript direkt aufruft oder
>> über "perl <skriptname>". In der Prozessliste wird immer ein "perl
>> /foo/bar/baz" stehen.
> 
> Herrschaftszeiten! Genau das hab ich schon in meiner ersten Antwort am
> 21.04.12 um 02:02:31 geschrieben!

Mag sein, aber dann hättest du schreiben müssen "pidof" liefert immer
ein falsches ergebnis, unabhängig davon wie man das Perl Programm
aufruft. Weil letzteres nämlich komplett unrelevant ist. Und pidof wird
nie in diesem Sinne korrekt sein.

> Egal wie du das Script aufrufst! Interessant ist ggfs. nur daß sich
> mit mehreren installierten Perlversionen beim /pfad/perl ggfs. das
> /pfad/ ändert (bzw. nach der #!-Zeile, in der sollte aber _IMMER_[0]
> '#!/usr/bin/perl' stehen. Auch unter Windows z.B.).

Nein, man sollte idealerweise "/usr/bin/env perl" nutzen und nicht
"/usr/bin/perl". Einserseits muss nicht jedes System überall gleich die
perl binarie ablegen. Und zum anderen trifft das zu was du unter [0]
sagtest. So gibt es nur nachteile gegenüber "/usr/bin/env perl". Die du
dort nicht haben wirst.

> 
> Noch Fragen?
> 
> -dnh
> 
> PS: Danke, anderer David ;)
> 
> [0] ok, in bestimmten Situationen, mit nem handgeklöppelten perl in
>     z.B. /usr/local oder /opt/perl.../bla und wenn das Script nur mit
>     genau dieser Version läuft etc. pp...
> 
> [1]
> $ dhweather &
> $ ps -eo cmd | grep '[d]hw'
> /usr/bin/perl -ws /home/dh/bin/dhweather
> $ cd ~/bin
> $ ./dhweather &
> $ ps -eo cmd | grep '[d]hw'
> /usr/bin/perl -ws ./dhweather
> $ perl ./dhweather
> $ ps -eo cmd | grep '[d]hw'
> perl ./dhweather
> 


Reply to: