ziegler tipos temperatura resueltos nichols metodo ejercicios ejemplos controladores controlador control macos process macos-carbon bsd

macos - temperatura - tipos de controladores pid



Obtener ruta real de aplicaciĆ³n de pid? (6)

Es bastante fácil obtener el nombre / ubicación del proceso si conoce el PID, simplemente use proc_name o proc_pidpath. Eche un vistazo al siguiente ejemplo, que proporciona la ruta del proceso:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <libproc.h> int main (int argc, char* argv[]) { pid_t pid; int ret; char pathbuf[PROC_PIDPATHINFO_MAXSIZE]; if ( argc > 1 ) { pid = (pid_t) atoi(argv[1]); ret = proc_pidpath (pid, pathbuf, sizeof(pathbuf)); if ( ret <= 0 ) { fprintf(stderr, "PID %d: proc_pidpath ();/n", pid); fprintf(stderr, " %s/n", strerror(errno)); } else { printf("proc %d: %s/n", pid, pathbuf); } } return 0; }

¿Cómo puedo obtener los detalles del proceso como el nombre de la aplicación y la ruta real de la aplicación desde el ID de proceso?

Estoy usando Mac OS X.


Me gustaría hacer un mejor ssh-copy-id solo en bash !! Para eso, tengo que saber dónde está sshd para preguntarle su configuración real. En algún sistema tengo varios sshd y que no es mi amigo. También en algunos macOS, el comando ps no mostró la ruta completa para sshd.

lsof -p $PPID | grep /sshd | awk ''{print $9}''

esta vuelta

/usr/sbin/sshd

despues de que pude pedir

sudo /usr/sbin/sshd -T | grep authorizedkeysfile

esta vuelta, en algun sistema

authorizedkeysfile .ssh/authorized_keys

Así que tengo que poner .ssh / authorized_keys


Puede usar el Monitor de actividad - http://en.wikipedia.org/wiki/Activity_Monitor

O en la aplicación Terminal puedes usar:

ps xuwww -p PID

PID es el identificador de proceso que busca. Más ayuda en el comando ''ps` que puede encontrar con

man ps


Si el PID es el PID de una "aplicación de usuario", entonces puede obtener la aplicación NSRunningApplication de la aplicación así:

NSRunningApplication * app = [NSRunningApplication runningApplicationWithProcessIdentifier:pid ];

Y para imprimir la ruta del ejecutable:

NSLog(@"Executable of app: %@", app.executableURL.path);

el paquete de aplicaciones en sí está aquí

NSLog(@"Executable of app: %@", app.bundleURL.path);

Sin embargo, esto no funcionará con el sistema o los procesos en segundo plano, se limita a las aplicaciones de usuario (las que normalmente se ven en el dock después del lanzamiento). El objeto NSRunningApplication permite verificar si la aplicación está activa, ocultarla / mostrarla y hacer todo tipo de cosas interesantes.

Sólo pensé que lo menciono aquí para completar. Si desea trabajar con procesos arbitrarios, la respuesta aceptada es, por supuesto, mejor.


Trate de usar lsof

ejemplo:

lsof -p 1066 -Fn | awk ''NR==2{print}'' | sed "s/n//////"

salida:
/Users/user/Library/Application Support/Sublime Text 2/Packages


Utilice este código para encontrar el psn de información de proceso.

A continuación, utilice la siguiente función para obtener la ubicación,

OSStatus GetProcessBundleLocation (const ProcessSerialNumber *psn, FSRef *location);