Prozesskontrolle: falls ein prozess nicht läuft soll er gestartet werden

tuxlover

tuxlover

Der den Tux knuddelt
hallo,

ich wollte mir ein script für beryl schreiben, das dann nach ~/.kde/Autostart schieben, damit beryl automatisch startet, dafür soll nachgeschaut werden, ob beryl bereist läuft, und falls nicht, soll beryyl gestartet werden, falls es bereits läuf soll nichts unternommen werden und das script wird danach beendet.

wie wird das realisiert.
 
Vielleicht etwas umständlich:
Guck einfach ob ps -A | grep beryl-manager | wc -l 1 ist und wenn nicht startest du Beryl.
 
ja und genau das wollte ich mit einem script automatisieren. also in etwa so:

Code:
if  ????
then 
<Kommando um beryl zu starten>
else
:
fi

gruß tuxlover. das problem ist die zeile mit den ???.
 
Code:
[ $(ps -A | grep -c foo) -eq 0 ] && /usr/bin/foo &
Code:
(ps -A | grep -q bar) && /usr/bin/bar &
 
Hallo,

die Lösung dieses Problems hatten wir bereits hier.

funksen schrieb:
kannst beides in der /etc/inittab einrichten

Beispielzeile:

ms:35:respawn:/pfad/zum/script > /irgendeinlogfileoderdevnull 2>&1

startet das script beim hochfahren in den runlevels 3 und 5, und startet es wieder wenn es beendet wurde
funksen ist offline Beitrag melden Mit Zitat antworten
 
Vielleicht etwas umständlich:
Guck einfach ob ps -A | grep beryl-manager | wc -l 1 ist und wenn nicht startest du Beryl.
Kleine Anmerkung hierzu:
Die grep Instanz mit dem Befehl nach dem du grepst, kann auftauchen (muss sie aber nicht) und dadurch dein erwartetes Ergebnis fälschen:
Code:
satire)0)509)~} ps ax | grep lala
 9425 pts/1    S+     0:00 grep lala
satire)0)510)~} ps ax | grep lala
satire)1)511)~} ps ax | grep lala
 9429 pts/1    R+     0:00 grep lala
 
Kleine Anmerkung hierzu:
Die grep Instanz mit dem Befehl nach dem du grepst, kann auftauchen (muss sie aber nicht) und dadurch dein erwartetes Ergebnis fälschen:
Code:
satire)0)509)~} ps ax | grep lala
 9425 pts/1    S+     0:00 grep lala
satire)0)510)~} ps ax | grep lala
satire)1)511)~} ps ax | grep lala
 9429 pts/1    R+     0:00 grep lala

Sowas hatten wir hier auch schon etliche mal, samt Lösung.
Code:
ps aux |grep "[f]oobar"
 
danke danke habs jetzt fertig.

sry für den doppelpost. aber in der boardsuche war das nirgends unter einem vernünftigen title zu finden.
 

Ähnliche Themen

systemd service mit Bash Script und Subshell in einer tmux Umgebung

Script pausieren bis Bedingung erfüllt ist

Prozess im Hintergrund ausführen?

Samba 4 + PowerShell?

Queue für copy Script

Zurück
Oben