GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar el archivo .pid para un proceso dado

Solución 1:

Por lo general, encontrará los archivos PID para procesos daemonizados en /var/run/ en sistemas estilo Redhat/CentOS.

Aparte de eso, siempre puede buscar en el script de inicio del proceso. Por ejemplo, el demonio SSH se inicia con el script en /etc/init.d/sshd . A veces, el PID se definirá allí (busque pid, PID, PIDFILE, PID_FILE, etc.).

Sin embargo, la mayoría de los otros demonios en los sistemas de estilo RHEL generan el /etc/init.d/functions secuencia de comandos para algunas funciones comunes.

# Set $pid to pids from /var/run* for {program}.  $pid should be declared
# local in the caller.
# Returns LSB exit code for the 'status' action.
__pids_var_run() {
        local base=${1##*/}
        local pid_file=${2:-/var/run/$base.pid}

Para cualquier cosa que genere /etc/init.d/functions , el PID vivirá en /var/run/*.pid .

Para aplicaciones personalizadas, el PID se definirá en un script contenedor (con suerte). Sin embargo, la mayoría de los desarrolladores que conozco siguen la misma convención que los demonios anteriores.

Si haces encuentra algo sin un archivo PID, recuerde que Monit también puede monitorear un patrón de cadena de proceso.

Solución 2:

Otro enfoque que tomé:

Tengo un servidor de base de datos que se ejecuta en modo incrustado y los datos están dentro del directorio de la aplicación contenedora.

La base de datos tiene algo así como un archivo .pid, pero lo llama archivo de bloqueo. Para ubicar este archivo de bloqueo, enumeré todos los archivos abiertos por la aplicación:

$ ls -l /proc/18264/fd | cut -d'>' -f2

Eso me dio una larga lista que incluye sockets, tuberías, archivos de servidor, etc. Pocos filtros y obtuve lo que necesitaba:

$ ls -l /proc/18264/fd | cut -d'>' -f2 | grep /home/ | cut -b40- | sort | uniq | grep titan

/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/00000000.jdb
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.info.0
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.info.0.lck
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.lck

Linux
  1. Cómo encontrar el archivo más antiguo en un árbol de directorios en Linux

  2. Linux:¿Cómo encontrar el controlador de dispositivo utilizado para un dispositivo?

  3. ¿Cómo encontrar el módulo del kernel para un dispositivo dado?

  4. ¿Cómo encontrar la aplicación para un tipo Mime en Linux?

  5. ¿Cómo encontrar el proceso con el máximo de descriptores de archivo?

Cómo encontrar un nombre de proceso usando el número PID en Linux

Cómo encontrar el nombre del proceso a partir de su PID

Cómo encontrar el PID y PPID de un proceso en Linux

¿Cómo encuentro la ubicación MySQL my.cnf?

¿Cómo especifico el archivo clave para sshfs?

¿Cómo encontrar el administrador de archivos predeterminado?