Linux – Scopri la directory di lavoro corrente di un process?

Se ho un process PID X, come posso scoprire quale directory è in esecuzione? Posso vedere con ps aux | grep X ps aux | grep X la linea di command completa con cui è stato richiamato. Tuttavia in questo caso è ./script.sh , e voglio vedere quale script.sh è in esecuzione.

  • Processo che parte da linux
  • Come faccio a registrare i picchi CPU?
  • Uccidi qualsiasi process GS che sia stato eseguito per oltre 5m su CentOS 6.5
  • Rogue processess in Linux
  • Dare un process un nome specifico in GNU / Linux?
  • Molti di 3 processi: migrazione, ksoftirqd, watchdog su Fedora
  • Cron funziona due volte - Ubuntu server 12.04
  • Il mio server linux "Numero di processi creati" e "Contenitori di context" sta crescendo incredibilmente veloce
  • 2 Solutions collect form web for “Linux – Scopri la directory di lavoro corrente di un process?”

    Il problema con /proc/PID/exe è che per gli script di shell mostra la posizione della shell. Il problema con /proc/PID/cwd è quello che mostra la directory di lavoro corrente del process. Se il process modifica le directory, ciò si riflette nell'objective di quel simbolo.

    Ciò mostrerà ciò che il PWD era al momento in cui è stato avviato lo script (sostituire l'ID di process in cui ti interessa vedere "PID"):

     procdir=$(grep -az "\bPWD" /proc/PID/environ); echo $procdir 

    o semplicemente:

     grep -az "\bPWD" /proc/PID/environ 

    Questo mostrerà il command che lo ha avviato in modo da poter vedere se è stata utilizzata una directory relativa o assoluta:

     proccmd=$(grep -az PROC_NAME /proc/PID/cmdline); echo $proccmd 

    o semplicemente:

     grep -az PROC_NAME /proc/PID/cmdline 

    Insieme, questi dovrebbero mostrare quale script è in esecuzione. Per chi è iniziato con ./ tutto ciò che serve è procdir .

    C'è una risposta più semplice, e questo è usare pwdx , come qui dettagliato

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.