Riduzione del timeout di arresto per "è in esecuzione un processo di arresto"


16

Ho node.js e pm2 installati su un Pi (Raspbian). PM2 è stato configurato per l'avvio tramite pm2 startupe gli script init che crea. A volte quando riavvio, l'arresto si blocca per alcuni minuti:

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

Di tanto in tanto 1 quello che presumo sia PM2 non si spegne correttamente e si blocca per tutti i 5 minuti.

Su questo sistema, so esattamente quali app sta gestendo PM2 e non mi interessa davvero se si chiudono correttamente.

La mia domanda è: come posso ridurre il timeout da 5 minuti a circa 15 secondi? Dove è configurato?

Ho letto su un forum che era la DefaultTimeoutStopSecchiave in /etc/systemd/system.conf , quindi ho provato a impostarlo su "15s" ma non ha avuto alcun effetto. Ho provato la stessa cosa anche in /etc/systemd/user.conf , ma nessuna modifica. Il timeout è ancora impostato su 5 minuti.


1 In realtà so esattamente cosa provoca questo, ma i dettagli non sono importanti e l'effetto è inevitabile.


1
Se esiste uno stopscript (predefinito) , è possibile riscriverlo per eseguire un forcestopo addirittura uccidere pm2invece di un arresto regolare .
Tigro

@Tigger Sono arrivato a una conclusione simile, in realtà. Per disperazione che ho appena fatto stopnello script di init di pm2, non faccio nulla e lo lascio morire naturalmente allo spegnimento. È una soluzione terribile per uso generale ma su questo particolare sistema va bene. Voglio comunque sapere come modificare il timeout di 5 minuti.
Jason C,

Risposte:


8

Come posso ridurre il timeout da 5 minuti a circa 15 secondi?

Ricostruisci systemd dal sorgente, rattoppando il timeout cablatosystemv-sysv-generator da TimeoutSec=5minquello che desideri. Oppure chiedi alla gente del sistema e di una manopola di controllo da qualche parte nelle intestazioni Fedora / SUSE o LSB.

In alternativa, rinunciare all'utilizzo di questo rcscript di cui disponete e scrivere un'unità di servizio systemd per il vostro servizio, i cui timeout è possibile impostare con un'impostazione esplicita TimeoutSec=, installata con un file di impostazioni drop-in, /etc/systemd/system/pm2.service.d/timeout.confse necessario.

Dato questo , questo , questo , questo , questo e altri, la prima regola per la migrazione a systemd si applica anche qui.

Ulteriori letture


15

/etc/systemd/system.conf ha una linea

#DefaultTimeoutStopSec=90s

che può essere decommentato e modificato


Ho detto che nel mio post e che cambiarlo non ha alcun effetto.
Jason C

l'impostazione 45s in Arch Linux rende gli arresti rapidi su nvmeun'unità - per gli arresti molto rapidi usa Alpine Linux (no systemd)
Stuart Cardall
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.