Reducción del tiempo de espera de apagado para "se está ejecutando un trabajo de detención"

16

Tengo node.js y pm2 instalados en un Pi (Raspbian). PM2 se configuró para iniciar vía pm2 startupy los scripts de inicio que crea. A veces, cuando reinicio, el apagado se bloquea durante unos minutos en:

A stop job is running for LSB: PM2 init script (... / 5min)

De vez en cuando 1, lo que supongo es que PM2 no se cierra correctamente y se cuelga durante los 5 minutos completos.

En este sistema, sé exactamente qué aplicaciones administra PM2 y realmente no me importa si se cierran correctamente.

Mi pregunta es: ¿cómo reduzco el tiempo de espera de 5 minutos a, digamos, 15 segundos más o menos? ¿Dónde está configurado esto?

Leí en un foro que era la DefaultTimeoutStopSecclave en /etc/systemd/system.conf , así que intenté establecerlo en "15s" pero no tuvo ningún efecto. Intenté lo mismo en /etc/systemd/user.conf , también, pero sin cambios. El tiempo de espera todavía está establecido en 5 minutos.


1 De hecho, sé específicamente qué desencadena esto, pero los detalles no son importantes y el efecto es inevitable.

Jason C
fuente
1
Si hay una stopsecuencia de comandos (predeterminada) , puede volver a escribirla para ejecutar forcestopo incluso matar en pm2lugar de un apagado correcto.
Tigger
@Tigger Llegué a una conclusión similar, en realidad. stopDebido a la desesperación que acabo de hacer en el script de inicio de pm2, no hago nada en absoluto, y lo dejé morir naturalmente en el apagado. Es una solución terrible para uso general, pero en este sistema en particular está bien. Sin embargo, todavía quiero saber cómo cambiar el tiempo de espera de 5 minutos.
Jason C

Respuestas:

8

¿Cómo reduzco el tiempo de espera de 5 minutos a, digamos, 15 segundos o menos?

Reconstruye systemd desde la fuente, parcheando el tiempo de espera cableadosystemv-sysv-generator de TimeoutSec=5minlo que desee. O le pide a la gente del sistema una perilla de control en algún lugar de los encabezados Fedora / SUSE o LSB.

O, por el contrario, abandona el uso de este rcscript que tiene y escribe una unidad de servicio systemd para su servicio, cuyos tiempos de espera puede establecer con una TimeoutSec=configuración explícita , instalada con un archivo de configuración desplegable /etc/systemd/system/pm2.service.d/timeout.confsi es necesario.

Dado esto , esto , esto , esto , esto y otros, la primera regla para migrar a systemd también se aplica aquí.

Otras lecturas

JdeBP
fuente
15

/etc/systemd/system.conf tiene una linea

#DefaultTimeoutStopSec=90s

que puede ser descomentado y cambiado

Wolfgang Fahl
fuente
Mencioné eso en mi publicación y que cambiarlo no tiene ningún efecto.
Jason C
la configuración de 45 segundos en Arch Linux hace que los cierres sean rápidos en una nvmeunidad; para paradas realmente rápidas, use Alpine Linux (no systemd)
Stuart Cardall el