Odpowiedzi:
W systemie Linux: jeśli znasz PID, możesz ustawić plik cmdline dla tego pliku. Na przykład:
cat /proc/PID/cmdline
Prawdopodobnie zakończy się niepowodzeniem, jeśli plik binarny został przeniesiony po uruchomieniu programu.
I oczywiście:
lsof -n | grep PID | grep ' txt '
i:
ls -la /proc/PID/exe
który jest dowiązaniem symbolicznym do pliku wykonywalnego.
/proc/PID/cmdline
nie ma znaku nowej linii, więc prawdopodobnie będziesz chciał zrobić coś takiego cat /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:
ps x | grep <process-id>
Żadna z metod ( ls
, lsof
lub cat
) w innych odpowiedzi dla mnie pracować. Jeśli zrobię:
$ nano test.txt
To mój zwycięzca:
$ pgrep -f -l test
3074 nano test.txt
Lub, aby uzyskać tylko PID, aby użyć go w programowaniu:
$ pgrep -f test
3074
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.