Wie kann ich den absoluten Pfad eines laufenden Prozesses ermitteln? unter Solaris

Wie kann ich den absoluten Pfad eines laufenden Prozesses ermitteln? unter Solaris

Dies ist der Befehl zum Anzeigen des Prozesspfads unter Linux

ps -auxwe | grep 24466    ( 24466 is only example )

aber bitte geben Sie mir einen Rat, ist es möglich, den Pfad des laufenden Prozesses unter Solaris anzuzeigen

wenn ja, wie lautet die PS-Syntax für Solaris?

Antwort1

Sie können pwdx in Solaris und Linux verwenden.

pwdx<pid_number>

Beispiel:

pwdx $$
25711:  /export/home/pippo

Antwort2

Wie kann ich den absoluten Pfad eines laufenden Prozesses ermitteln?

Wenn Sie mit „absolutem Pfad“ den vollständigen Pfad der laufenden Binärdatei meinen, funktioniert dies auf meiner installierten Kopie von Solaris 11:

pmap PID | grep -v ':' | head 1 | awk '{ print $4 }'

Ersetzen Sie es PIDdurch die Prozess-ID des Prozesses, an dem Sie interessiert sind.

pmapgibt die Adresszuordnung des Prozesses aus, einschließlich des vollständigen Pfads der Quelldatei für die Zuordnung. Dies beinhaltet die eigentliche Binärdatei, die die ersteKartierungZeile der Ausgabe. Die erste Zeile der Ausgabe enthält die Prozess-ID und die Prozessargumente. Beachten Sie, dass die Prozessargumente nicht ausreichen, um den vollständigen Pfad zur ausgeführten ausführbaren Datei zu identifizieren. Die ersten Zeilen der tatsächlichen Adressraumzuordnungen sind Zuordnungen aus der tatsächlich ausgeführten Binärdatei, aufgelistet mit dem vollständigen, absoluten Pfad der Binärdatei.

Leider benötigen Sie Lesezugriff auf die Prozesskarte, um diese Informationen zu erhalten. Ich kenne keine Möglichkeit, das Gesuchte zu erhalten, ohne diesen Zugriff zu haben.

Bearbeiten: Es gibt auch /proc/[PID]/path/a.outunter Solaris 11 einen Softlink zur eigentlichen Binärdatei:

In Bash:

bash-4.1$ readlink /proc/$$/path/a.out
/usr/bin/bash

Beachten Sie, dass dies /proc/$$/path/a.outbesser ist als /proc/self/path/a.out:

bash-4.1$ readlink /proc/self/path/a.out
/usr/bin/readlink

Wenn Sie keinen Zugriff auf die Prozesszuordnung über haben pmap, haben Sie leider wahrscheinlich auch keinen Zugriff auf /proc/[PID]/path/a.out, da die Berechtigungen /proc/[PID]/pathfür meine Solaris 11-Installation alle 500 betragen – nur der Eigentümer und der Root haben Lese- und Ausführungsberechtigungen für das Verzeichnis.

Antwort3

/usr/ucb/ps auxwwww | grep 6851 hat bei mir unter SunOS servername01 5.10 Generic_147440-25 sun4u sparc SUNW,Sun-Fire-V490 funktioniert

verwandte Informationen