Domanda

Ho il PID di un processo in esecuzione in FreeBSD. Come posso ottenere la sua directory corrente?

È stato utile?

Soluzione

È possibile ottenere il numero di inode della directory di lavoro corrente con

fstat -p $PID

Si presenta come lsof vi darà una forma leggibile della directory di lavoro corrente, ma noi non abbiamo questo installato su qualsiasi delle macchine FreeBSD locali, quindi non posso verificare che.

Altri suggerimenti

fstat riesce a trovare il numero di inode e file system, e trovare riesce a trovare la directory corretta.

Prova questo:

fstat -p $$|perl -ane '$F[3] eq "wd" && system("find",$F[4],"-xdev","-inum",$F[5],"-print");'

Quando eseguito come non-root, trovare probabilmente uscita un bel po ' "Permesso negato" messaggi che possono essere evitati con l'inserimento di close(STDERR); davanti al $F[3] (dopo il primo singolo citazione).

Nelle versioni più recenti di FreeBSD, è possibile utilizzare procstat -f $PID, che mostra il percorso se è ancora nella cache nome del kernel.

/ proc / $ PID / cwd contiene un link simbolico ai programmi directory di lavoro corrente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top