Seiten: [1]
|
|
|
|
Autor
|
Thema: Programm-PID finden (Gelesen 1080 mal)
|
|
Andreas
Administrator
Offline
Einträge: 1319
Linux von Innen
|
|
Programm-PID finden
« am: 28. November 2022, 07:50:44 »
|
|
Manchmal steht man vor dem Problem die PID eines laufenden Prozesses in einem Script zu ermitteln. das geht wunderbar mit ps und grep - etwa so: Ich gebe mal ein komplettes Beispiel. Ich möchte wissen ob der cron-Prozess "regler-auslesen.php" noch läuft. Das geht so:ps ax | grep regler_auslesen.php 3812125 ? Ss 0:00 /bin/sh -c /var/www/html/regler_auslesen.php >/dev/null 3812357 pts/3 S+ 0:00 grep regler_auslesen.php |
| Schon mal nicht schlecht - aber der grep-Prozess, der ja zum Zeitpunkt der Suche selbst gerade läuft findet auch stets sich selbst. Man bekommt also immer ZWEI Prozesse angezeigt: den, den man sucht und den Prozess der gerade danach sucht. Auf der Kommandozeile kein Problem - in einem Script schon. Da brauche ich exakt EINE PID. Das kann man ganz einfach lösen: die Suchzeichenkette von grep kennt regex. Also suche ich einfach wie folgt: ps ax | grep [r]egler_auslesen.php 3934227 ? Ss 0:00 /bin/sh -c /var/www/html/regler_auslesen.php >/dev/null |
| und schwupps! finde ich nur den Prozess nach dem ich suche. Warum? Beschäftigt euch mal mit "regex" (reguläre Ausdrücke). Ist nicht wirklich einfach - aber seeeeeehr mächtig
LG Andreas
|
« Letzte Änderung: 28. November 2022, 07:52:37 von Andreas » |
Gespeichert
|
Wissen ist das einzige Gut, das mehr wird, wenn man es teilt - wenn es Menschen gibt, die es teilen, und es Menschen gibt, die bereit sind, dieses Geschenk auch mit eigenem Einsatz anzunehmen.
Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Ohne IT-Kompetenz ist man heutzutage ein willkommenes Opfer und Spielball anderer, egal, welches System oder Gerät man nutzt. Nur Wissen schützt vor Schaden!
|
|
|
Sebastian
Sr. Member
Offline
Einträge: 487
|
|
Re:Programm-PID finden
« Antwort #1 am: 28. November 2022, 17:07:46 »
|
|
Und falls man nur die PID benötigt für sein Script bekommt man so nur die PID ausgeben ohne den Rest der Befehlszeile:
pgrep -f regler_auslesen.php
|
|
pgrep ist im Paket procps-ng das eine Abhängigkeit von base ist, und somit auf jeden Arch vorhanden sein müsste.
Regex ist sehr mächtig, und das Mittel der Wahl, wenn man Zeichenketten präzise suchen möchte.
Für das Studium von Regex kann ich das Buch Einstieg in reguläre Ausdrücke empfehlen.
Und zum Üben Ausprobieren: https://regex101.com/
Und hier ist eine Seite, die reguläre Ausdrücke als SVG oder PNG darstellt. https://regexper.com/
|
|
Gespeichert
|
Richtig um Hilfe bitten
|
|
|
Seiten: [1]
|
|
|
|
|
|
|