Jeśli widzę proces działający przy użyciu ps -e
, jak mogę znaleźć plik, który go uruchomił?
process
executable
ps
interstar
źródło
źródło
Odpowiedzi:
W systemie Linux: jeśli znasz PID, możesz ustawić plik cmdline dla tego pliku. Na przykład:
Prawdopodobnie zakończy się niepowodzeniem, jeśli plik binarny został przeniesiony po uruchomieniu programu.
I oczywiście:
i:
który jest dowiązaniem symbolicznym do pliku wykonywalnego.
źródło
/proc/PID/cmdline
nie ma znaku nowej linii, więc prawdopodobnie będziesz chciał zrobić coś takiegocat /proc/PID/cmdline ; echo ''
.tr '\0' ' ' < /proc/PID/cmdline ; echo ''
Skopiuj identyfikator procesu z
ps -e
polecenia, a następnie uruchom następujące polecenie:źródło
Żadna z metod (
ls
,lsof
lubcat
) w innych odpowiedzi dla mnie pracować. Jeśli zrobię:To mój zwycięzca:
Lub, aby uzyskać tylko PID, aby użyć go w programowaniu:
Testowany na Kali Linux v1.0.6 (oparty na Debianie).
W porównaniu z prostym
ls
muszę przyznać, że nie jest to tak przenośne rozwiązanie, ale przynajmniej działa.źródło