Zum Inhalt springen

pwdx

Dieser Beitrag fällt unter die Kategorie Braindump. Es geht hierbei darum wie man einem Prozess das Arbeitsverzeichnis findet, damit man den richtigen Prozess auf einem Linux System abschießen kann.

Das Problem ist eigentlich recht einfach. Ein Application Server hat sich in einen sehr undefinierten Zustand verabschiedet und kann mit den herkömmlichen Start/Stop-Skripts nicht mehr bearbeitet werden. Da man diesen aber Neustarten will/muss, muss der alte Prozess endgültig abgeschossen werden. Wenn nur genau ein Server läuft, ist dies alles kein Problem. Laufen auf dem System aber mehrere Instanzen, so kann man zwar ziemlich sicher sagen, welcher Server das ist, da man die übrig gebliebenen Ports sehen kann, aber eine hundertprozentige Sicherheit gibt es nicht.
Glücklicherweise kennt man aber das Working Directory, also muss man nur noch herausbekommen, ob der Port und das Arbeitsverzeichnis zusammen passen.

Den Port kennen wir schon also müssen wir nur noch den folgenden Befehl absetzen:

pwdx `lsof -i | grep 12345 | awk '{ print $2}'`

Das heißt wir suchen uns alle Prozesse, die einen Port geöffnet haben, dann filtern wir nach dem Port 12345 und suchen uns die Spalte mit der Prozess ID. Den Vorgang packen wir zusammen und übergeben das Ergebnis dem pwdx Tool und dieses ermittelt zu der gefundenen PID das Working Directory. Als Ergebnis erhält man soetwas:

22613: /home/phpmonkeys/glassfish-v3-01/glassfish/domains/monkeys/config

Jetzt sieht man, dass der Prozess genau der richtige ist und kann mit kill weiterarbeiten wie gewohnt.

Published inSysadmin

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close