FreeBSD: corrente dir del processo in esecuzione tramite il processo id
-
18-09-2019 - |
Domanda
Ho il PID di un processo in esecuzione in FreeBSD. Come posso ottenere la sua directory corrente?
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.