Linux: lugares alternativos donde almacenar el archivo pid en lugar de / var / run

21

Como está escrito en el título, ¿dónde debo dejar que el script de inicio escriba el archivo pid? ¿Hay alguna ruta estándar que deba elegir en lugar de / var / run?

¿Podría / tmp ser un buen lugar para almacenarlo o hay inconvenientes en eso?

Murko
fuente
66
¿Qué pasa con / var / run?
llegó el
Esta pregunta de desbordamiento de pila es relevante: stackoverflow.com/q/5173636/1071869
Renan
lo único incorrecto con / var / run es que no tengo acceso de escritura con mi usuario a él ..
Murko
2
@Murko, entonces debe almacenar el archivo pid en el directorio de inicio del usuario.
Renan

Respuestas:

22

En resumen : puede almacenarlo en cualquier lugar (por ejemplo, /tmpo /var/tmp), pero /var/runes el estándar preferido.

/var/runes el estándar de jerarquía del sistema de archivos :

Este directorio contiene datos de información del sistema que describen el sistema desde que se inició. Los archivos de este directorio deben borrarse (eliminarse o truncarse según corresponda) al comienzo del proceso de arranque. Los programas pueden tener un subdirectorio de / var / run; esto se recomienda para los programas que usan más de un archivo en tiempo de ejecución. [nota 37]

Y una característica deseable es que la mayoría de las distribuciones lo limpian automáticamente (a diferencia de lo /tmpque no se limpia al arrancar en algunas distribuciones); esto evita los archivos pid obsoletos:

La ubicación normal de los archivos pid es / var / run. La mayoría de las unidades limpiarán este directorio en el arranque; bajo Ubuntu esto se logra mediante / var / ejecuta un sistema de archivos en memoria (tmpfs).

Es su elección dónde almacenarlo, pero yo iría con el estándar.

Si no tiene acceso /var/run, debe almacenar el archivo pid en el directorio de inicio del usuario, por ejemplo ~/.my_app.pid.

Renan
fuente
9

Si /var/runnecesita acceso de escritura no root a lo que necesita, tenga en cuenta que hay subdirectorios /var/run/userpara usuarios individuales. Solo necesita obtener el UID del usuario actual:

/var/run/user/[$uid]

dwk
fuente