Wie um zu testen, ob ein Prozess vorhanden ist, in der Bash?
Möchte ich sicherstellen, dass node
ausgeführt wird, wenn die Protokollierung in. Also in meinem .bashrc
- Datei habe ich:
pkill node
sleep 1
node server.js &
Natürlich nicht überprüfen, ob node
läuft... es einfach tötet es und startet es wieder. Stattdessen würde ich gerne so etwas wie dieses:
node_process = $(pidof node)
if [not_exists node_process]; then
node server.js &
fi
Das problem ist das not_exists
Methode scheint nicht zu existieren :). Wie Teste ich auf die Existenz einer Zahl oder Zeichenfolge, die in der Bash und ist dies der beste Weg, um sicherzustellen Knoten ist und läuft nach der Anmeldung?
- Mögliche Duplikate von Wie zu prüfen, ob eine Prozess-id (PID) vorhanden ist
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie überprüfen, ob ein string leer ist mit
-z
:pidof
gibt nothing zurück, wenn kein passender Prozess gefunden, sonode_process_id
wäre auf einen leeren string gesetzt.$(pidof node)
innerhalb derif
Zustand? Neugierig, warum brauche ich 2 eckige Klammern um dieif
Zustand?bash
version der einzelnen Klammern. Und ja, ich denkeif ! pidof node; then node server.js & fi
sollte funktionieren.