Woher weiß ich, wo (aus welchem ​​Verzeichnis) der Prozess befohlen wird?


1

Ich führe eine Simulation aus, die an einem Verzeichnis beginnen soll, erinnere mich aber nicht, von welchem ​​Verzeichnis aus ich die Simulation befohlen habe. Ich verwende Python zum Ausführen der Simulation

ps aux | grep PID

Zeigt nur an, wo sich das ausführende Programm befindet. (/ usr / bin / python). Ich möchte jedoch wissen, wo der Befehl von Anfang an ausgeführt wird und wo sich die von mir ausgeführte Datei befindet.

Ich würde mich über hilfreiche Kommentare sehr freuen!

Vielen Dank :)

Antworten:


1

Vielleicht möchten Sie den historyBefehl verwenden, um zu sehen, welchen Befehl Sie tatsächlich verwendet haben?


1

Um den Pfad des Python-Skripts anzuzeigen, können Sie ihn normalerweise mit ps( wggf. mit der Option, wide) anzeigen:

~% ps ugxw | grep python
romano    2136  0.0  0.2  10524  4132 ?        S    09:13   0:00 python /home/romano/software/wallpap/bg_slideshow.py
romano    5839  0.0  0.0   4440   832 pts/1    S+   10:00   0:00 grep python

Beispielsweise ist der Prozess 2136 das Skript /home/romano/software/wallpap/bg_slideshow.py. Wenn Sie wissen möchten, welches das Arbeitsverzeichnis des Prozesses ist, tun Sie Folgendes

~% ls -l /proc/2136/cwd
lrwxrwxrwx 1 romano romano 0 Nov 11 10:04 /proc/2136/cwd -> /home/romano

Der Prozess wird /home/romanoals aktuelles Verzeichnis ausgeführt.

In der Datei /proc/2136/cmdlinebefindet sich die vollständige Befehlszeilenspezifikation - die gleiche, die Sie in sehen ps, mit den Befehlen und Argumenten, die durch Bytes mit 0-Werten getrennt sind (um die Leerzeichen zu erhalten). Sie können es auf Ihrem Terminal mit sehen

% cat /proc/2136/cmdline | tr "\0" " "
python /home/romano/software/wallpap/bg_slideshow.py % 

Dabei gibt "tr" für jedes gefundene "nul" -Zeichen ein Leerzeichen aus. (Das falsche% am Ende ist darauf zurückzuführen, dass die Datei nicht mit einem Zeilenumbruchzeichen endet.)

Das / proc-Dateisystem ist ein wirklich nützliches Tool - die vollständige Dokumentation ist etwas "schwierig", aber es ist oft nützlich, einen Link dazu zu haben: https://www.kernel.org/doc/Documentation/filesystems/proc. TXT


0

Verwenden Sie den whichBefehl. Gibt beispielsweise which ifconfigden Speicherort des Befehls ifconfig aus.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.