Woher weiß ich, woher (aus welchem ​​Verzeichnis) der Prozess gesteuert wird?

Woher weiß ich, woher (aus welchem ​​Verzeichnis) der Prozess gesteuert wird?

Ich führe eine Simulation aus, die in einem bestimmten Verzeichnis gestartet werden soll, weiß aber nicht mehr, aus welchem ​​Verzeichnis ich die Simulation gestartet habe. Ich verwende Python, um die Simulation auszuführen, also

ps aux | grep PID

zeigt nur an, wo sich das ausgeführte Programm befindet. (/usr/bin/python). Ich möchte jedoch wissen, wo der Befehl vom allerersten Punkt aus ausgeführt wird, wo sich die von mir ausgeführte Datei befindet.

Ich würde mich über jeden hilfreichen Kommentar sehr freuen!

Danke :)

Antwort1

Vielleicht möchtest Du den historyBefehl nutzen, um zu sehen, welchen Befehl Du tatsächlich verwendet hast?

Antwort2

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

~% 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 Prozess 2136 das Skript /home/romano/software/wallpap/bg_slideshow.py. Wenn Sie wissen möchten, welches das Arbeitsverzeichnis des Prozesses ist, geben Sie

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

/home/romanoDer Prozess wird im aktuellen Verzeichnis ausgeführt .

In der Datei /proc/2136/cmdlinebefindet sich die vollständige Befehlszeilenspezifikation --- dieselbe, die Sie in sehen ps, wobei die Befehle und Argumente durch 0-wertige Bytes getrennt sind (um die Leerzeichen beizubehalten). Sie können dies auf Ihrem Terminal mit sehen

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

wobei „tr“ für jedes gefundene „Nul“-Zeichen ein Leerzeichen ausgibt. (Das fehlerhafte % am Ende liegt daran, dass die Datei nicht mit einem Newline-Zeichen endet.)

Das /proc-Dateisystem ist ein wirklich nützliches Werkzeug. 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

Antwort3

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

verwandte Informationen