Come ottenere un nome di processo dal suo pid? Ad esempio eseguo cat file1.txt, ma voglio capire quel comando cat e i suoi argomenti dal suo pid nel sistema. C'è una struttura per determinarlo o qualcosa di simile? Qualche idea?Nome processo dal suo pid in linux
risposta
Non esiste un modo generale per eseguire questo unix.
Ogni SO ha diversi modi per gestirlo e alcuni sono molto difficili. Si parla di Linux però. Con Linux, le informazioni sono nel filesystem/proc.
Per ottenere la riga di comando per ID processo 9999, leggere il file /proc/9999/cmdline
.
E per ottenere il nome processo per ID processo 9999, leggere il file '/ proc/9999/comm'. –
La domanda era come ottenere il nome del processo, non la riga di comando. Sul mio SUSE inserisco 'head/proc/9999/cmdline' per un processo kwrite e restituisce: 'kdeinit4: kwrite [kdeinit]'. Se uso/comm invece di/cmdline ottengo il risultato corretto: 'kwrite'. – Elmue
Su linux, è possibile cercare in . Prova a digitare man proc
per ulteriori informazioni. Il contenuto di /proc/$PID/cmdline
fornirà la riga di comando con cui è stato eseguito il processo $PID
. C'è anche /proc/self
per esaminare te stesso :)
Un'alternativa (ad esempio su Mac OS X) è utilizzare libproc
. Vedi libproc.h.
POSIX C NON supporta un'API standard per ottenere il nome del processo tramite PID.
In Linux, è possibile ottenere il nome dall'API LINUX Proc:/proc/$ PID/cmdline. E il codice appare come questi:
const char* get_process_name_by_pid(const int pid)
{
char* name = (char*)calloc(1024,sizeof(char));
if(name){
sprintf(name, "/proc/%d/cmdline",pid);
FILE* f = fopen(name,"r");
if(f){
size_t size;
size = fread(name, sizeof(char), 1024, f);
if(size>0){
if('\n'==name[size-1])
name[size-1]='\0';
}
fclose(f);
}
}
return name;
}
E se siete venuti qui alla ricerca di un soluzione in C# che funziona con mono, quindi dai un'occhiata a questo: http://stackoverflow.com/questions/29827331/workaround-for-bug-in-mono-wrong-process-processname-solved – Elmue
per ottenere il nome di un processo id processo dire 9000 l'uso di questo comando:
ps -p 9000 -o comm=
Anche se questa domanda è stato risposto, vorrei aggiungere la mia 2 centesimi.
Nel mio caso, quando il processo 1111 crea 22222 processo tramite il tubo (almeno questo è quello che ho sentito),/proc/2222/cmdline non dà nome corretto processo, ma invece dà qualcosa come 1111_1. Devo usare/proc/2222/comm per ottenere il nome del processo corretto.
- 1. Come ottenere i dettagli del processo dal suo pid
- 2. Elimina un processo java (in linux) per nome processo anziché PID
- 3. Determinare se esiste un processo dal suo ID processo
- 4. Ottieni il nome del processo tramite PID
- 5. C++ Windows - Come ottenere il percorso del processo dal suo PID
- 6. Riciclaggio PID Linux
- 7. pid del processo attualmente in esecuzione
- 8. Come scoprire nome dell'applicazione da PID (id di processo)
- 9. Ottieni il nome da PID?
- 10. Ottieni il nome del processo da pid o handle
- 11. PID dell'ultimo processo in esecuzione in Windows
- 12. Attendi il processo arbitrario e ottieni il suo codice di uscita in Linux
- 13. Gli ID di processo non sono negativi in Linux?
- 14. ottenendo pid del processo figlio
- 15. Elimina il processo usando il suo nome all'interno di linux (Python)
- 16. Ottenere ultimo processo PID in Makefile
- 17. File batch di Windows: PID dell'ultimo processo?
- 18. Processo in background in linux
- 19. Come eseguire un programma e conoscere il suo PID in Linux?
- 20. come ottenere l'id di processo (pid) dal processo figlio biforcuto nello script di shell
- 21. Come ottenere l'ID del processo dal nome del processo?
- 22. Uccidere processo con file di pid
- 23. Come ottenere un nome file di processo da pid, se OpenProcess() fallisce con ACCESS_DENIED?
- 24. Cambia il nome del processo reale in C su Linux
- 25. C# - Uccidere un processo da una parte del suo nome
- 26. Come terminare il processo da Python usando pid?
- 27. Come accedere alla variabile di istanza dal suo "nome stringa"?
- 28. comando di Linux ottenere Tomcat processo id per nome
- 29. Ottieni il PID di un processo per eliminarlo senza conoscerne il nome completo
- 30. Ottenere il PID del processo in Shell Script
possibile duplicato di [Ottieni nome processo per PID] (http://stackoverflow.com/questions/4189717/get-process-name-by-pid) – Hasturkun