Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Programm nur starten, wenn es noch nicht läuft

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
eman



Anmeldungsdatum: 26.09.2001
Beiträge: 33

BeitragVerfasst am: 02. Jul 2004 17:11   Titel: Programm nur starten, wenn es noch nicht läuft

Hallo Gemeinde,

ich suche eine Kommando-Verknüpfung in der Art

Code:
ps ax | grep "my_prog" && my_prog


um ein Programm nur dann zu starten, wenn es noch nicht läuft. Vielleicht gibt es sogar eine Lösung zu
Code:
Läuft Programm DANN aktion_1 SONST aktion_2
?

Vielen Dank für eure Hilfe
Erik
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

max



Anmeldungsdatum: 14.05.2000
Beiträge: 806
Wohnort: Ruhrpott

BeitragVerfasst am: 02. Jul 2004 17:51   Titel:

funktioniert deine Version nicht?


Aber gucke dir mal die Start/Stop-Scripte in init.d an.
Dort wird das immer so gemacht. Bei debian gibt es einen start-stop-daemon Skript.


Der legt die PID in /var/run ab.
Daszu gibt es bestimmt auch ne Doku....
 
Benutzer-Profile anzeigen Private Nachricht senden

kanonenfutter
Gast





BeitragVerfasst am: 02. Jul 2004 18:20   Titel:

am bsp von "kate":
Code:
$(ps ax | grep -w kate | grep -vq "grep") && echo "läuft bereits" || kate &

wenn es noch nicht läuft wird es gestartet.
 

kanonenfutter
Gast





BeitragVerfasst am: 02. Jul 2004 18:59   Titel:

PS: es steht dir natürlich frei, ein skript zu basteln, das du dann auch in anderen skripten benutzen kannst. dabei muss man dann aber zusätzlich den aufruf des skripts aus dem ps-output rausfiltern.
Code:
#!/bin/bash
# /usr/local/bin/isrunning. aufruf: isrunning PROCESSNAME
# RC: 0 falls >0 prozesse dieses namens laufen, 1 sonst

myname=$(basename $0)
exit $(ps ax | grep -w $1 | grep -vw $myname | grep -vq "grep")
ein kleiner haken bei der skript-lösung:
angenommen, du editierst in vi ausgerechnet das skipt selber und es läuft keine weitere instanz von vi. nun testest du mit dem skript, ob vi läuft, aber die entsprechende zeile wird ausgefiltert (wegen skriptname) --> vi scheint nicht zu laufen. ...da müsste man noch ein bisschen tunen.
 

kanonenfutter
Gast





BeitragVerfasst am: 02. Jul 2004 19:39   Titel:

nachtrag und tuning:
mit dem parameter "c" gibt ps nur die prozessnamen ohne aufrufparameter aus. das löst das problem mit dem skriptnamen und vereinfacht den code erheblich.
Code:
exit $(ps axc | grep -wq $1)
 

eman



Anmeldungsdatum: 26.09.2001
Beiträge: 33

BeitragVerfasst am: 05. Jul 2004 11:34   Titel: Vielen Dank

für die konstruktiven Vorschläge. Funktioniert genau so, wie ich es wollte.

Grüße
Erik
 
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy