`ps aux`, in Bash geschrieben – ganz ohne Fork
(github.com/izabera)ps aux in Bash implementieren
-
Interviewfrage: Für ein Interview zu einer Position, die Kenntnisse in Bash/Linux erfordert, kann man folgende Situation annehmen
- Man ist per SSH auf einer Maschine eingeloggt und verwendet eine Bash-Shell, kann aber keine neuen Prozesse erzeugen
- Es wird gefragt, was man tun würde, wenn alle PIDs belegt sind
-
Lösung: Mit diesem Tool kann man sich so verhalten, als stünde der Befehl
ps auxzur Verfügung- Es funktioniert nicht in jeder Situation zu 100 %, verhält sich aber ähnlich
Zusammenfassung von GN⁺
- Dieser Artikel zeigt eine Möglichkeit, den Befehl
ps auxzu ersetzen, wenn in einer Bash-Shell keine neuen Prozesse erzeugt werden können - Er erklärt, wie man mit einem Bash-Skript Systemprozesse überprüfen kann
- Die Methode funktioniert nicht in jeder Situation perfekt, kann aber in eingeschränkten Umgebungen nützlich sein
- Andere Tools mit ähnlicher Funktion sind
htopoder der Befehltop
1 Kommentare
Hacker-News-Kommentare
Das schwierigste Problem in der Informatik ist die Ausrichtung von Spalten
Beispiel für eine Interviewfrage, die Wissen zu bash/Linux voraussetzt
/proc/[pid]/wird geprüft, welche Prozesse den PID-Raum verbrauchenkillist ein eingebauter bash-Befehl und kann verwendet werden, ohne einen neuen Prozess zu erzeugenInterviewerfahrung für eine SRE-Rolle bei einem großen US-Technologieunternehmen im Jahr 2011
netstatzu schreiben/proc/findet, daher wurden Ersatzprogramme fürpsundfusergeschriebenIzabera aus bash@libera ist einer der bash-Experten
Beispiel für sauberen bash-Code
Es wird gefragt, wie man das Problem löst, wenn keine neuen Prozesse erzeugt werden können, weil alle PIDs bereits in Benutzung sind
Funktioniert nicht in bash 3.2, aber in bash 4.2
printfaufVorschlag für einen besseren Anwendungsfall zum Auflisten von Prozessen auf Systemen, auf denen
procpsnicht installiert istMan kann auch Listener und Clients in bash schreiben, aber in der Praxis wird das nicht empfohlen