WinFuture-Forum.de: Shell Script | Prozess Pid Auslesen Und überprüfen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Linux
Seite 1 von 1

Shell Script | Prozess Pid Auslesen Und überprüfen


#1 Mitglied ist offline   Janson 

  • Gruppe: aktive Mitglieder
  • Beiträge: 118
  • Beigetreten: 21. September 08
  • Reputation: 0

geschrieben 03. Mai 2009 - 09:26

Schönen Sonntag morgen allerseits, ich habe eine Frage:

Ich möchte mit einem Shell Script (logischerweise unter Linux) anhand eines Datei namens, eines programmes überprüfen ob das Programm bzw. der Prozess gestartet ist und wenn das nicht der Fall ist, soll das Script den Server starten.

Hat dazu jemand eine Idee, weil ich habe schon gegoogelt, aber es sieht so aus als ob ich der erste wäre der sich dafür interessiert

:wink:

Ich weis, dass es soetwas unter Windows gibt, aber für Linux habe ich leider noch nichts gefunden...

Mfg Janson
0

Anzeige



#2 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 03. Mai 2009 - 09:52

ps aux | grep $name
?
$name ist case-sensitive, solange du an grep kein "-i" anhängst. Das ergibt bei mir für Opera z.B.
$user	 1489  0.0  0.0   6512   792 pts/4	S+   10:48   0:00 grep opera
$user	13569  2.3  2.5 291488 102524 tty1	Sl   09:05   2:28 /opt/opera/lib/opera/9.64/opera
$user	14064  2.9  0.8 290760 33036 tty1	 SN   09:14   2:48 /opt/opera/lib/opera/9.64//operapluginwrapper-native 61 64 /usr/lib64/nsbrowser/plugins/libflashplayer.so
$user	14065  0.0  0.0  11488   832 tty1	 S	09:14   0:00 /opt/opera/lib/opera/9.64//operaplugincleaner 13569
Um das "grep" aus der Ausgabe rauszubekommen, einfach oben noch ein
| grep -v grep
dran gehauen.

Wenn du die PID willst, einfach noch
| awk '{print $2}'
hinten dran.

Alternativ dazu, sofern auf deinem System vorhanden, einfach
pidof $name


Edit, das funktioniert natürlich nur, wenn das gewünschte auch via ps zu sehen ist. Alternativ, lass dein Skript doch einfach eine PID anlegen und schau dann nach, ob sie existiert, z.B.
#!/bin/zsh
PID_FILE=/tmp/.mypid

function do_stuff() {
echo "hier der sinnvolle content, wenn noch nix läuft"
touch $PID_FILE
}

function kill_it() {
echo "hier das zeug zum killen"
rm -f $PID_FILE
}

( [[ ! -e $PID_FILE ]] && do_stuff ) || kill_it

Dieser Beitrag wurde von lustiger_affe bearbeitet: 03. Mai 2009 - 10:01

0

#3 Mitglied ist offline   Janson 

  • Gruppe: aktive Mitglieder
  • Beiträge: 118
  • Beigetreten: 21. September 08
  • Reputation: 0

geschrieben 03. Mai 2009 - 10:12

danke für die schnelle Hilfe.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0