logo

Suletuxe.de
Linux - Nutzer
helfen
Linux - Nutzern

Willkommen, Gast. Bitte Login oder Registrieren.
29. Januar 2023, 05:19:16
Übersicht Hilfe Suche Login Registrieren

Amateurfunk Sulingen
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Installation & Einrichtung  |  Thema: Programm-PID finden « zurück vorwärts »
Seiten: [1] nach unten Drucken
   Autor  Thema: Programm-PID finden  (Gelesen 293 mal)
Andreas
Administrator
*****

Offline

Einträge: 981



Linux von Innen

Profil anzeigen
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:
Code:
ps ax | grep PROZESSNAME

Ich gebe mal ein komplettes Beispiel. Ich möchte wissen ob der cron-Prozess "regler-auslesen.php" noch läuft. Das geht so:
Code:
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:
Code:
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 weitergeben, und es Menschen gibt, die bereit sind, dieses Geschenk auch unter eigenem Einsatz anzunehmen.


Freiheit zu erkämpfen reicht nicht. Man muss sie auch verteidigen.
Sebastian
Full Member
***

Offline

Einträge: 177





Profil anzeigen
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:

Code:

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
Seiten: [1] nach oben Drucken 
Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe  |  allgemeine Kategorie  |  Installation & Einrichtung  |  Thema: Programm-PID finden « zurück vorwärts »
Gehe zu: 


Login mit Username, Passwort und Session Länge

 Es wird die Verwendung "Blink"-basierter Browser und mindestens 1024x768 Pixel Bildschirmauflösung
für die beste Darstellung empfohlen
 
freie Software für freie Menschen!
Powered by MySQL Powered by PHP Diskussions- und Newsboard der Linux Interessen Gruppe Suletuxe | Powered by YaBB SE
© 2001-2004, YaBB SE Dev Team. All Rights Reserved.
- modified by Andreas Richter (DF8OE)
Valid XHTML 1.0! Valid CSS!