Folosesc Fedora CoreOS cu actualizarea automată activată, ceea ce este grozav pentru cazul meu de utilizare. Deja, atunci când este conectat interactiv, sistemul avertizează despre o oprire/repornire iminentă prin intermediul consolei, cu aceleași mecanisme descrise în răspunsuri precum
Trimiterea mesajelor de oprire către toți clienții de pe server
Cu toate acestea, utilizatorii „adevărați” ai acestui server nu sunt utilizatori Linux cu acces SSH, ci accesează servere precum un IRC sau alte servicii. Aș dori să „prind” mesajul de avertizare de închidere și să-l transmit fiecăruia dintre servicii, s.t. o pot difuza.
Serviciile sunt orchestrate folosind containere podman/docker neprivilegiate rulate prin systemd (podman-generate-systemd
) unități utilizator.
Pot (ab)utiliza ExecStopPre
setarea în unitatea systemd la mereu dormi 5m
înainte de a opri unitatea. Totuși, acest lucru nu este exact ceea ce vreau, deoarece aș dori să pot reporni/opri un serviciu imediat, când termin manual folosind systemctl --user stop/restart
.
În prezent văd două căi care ar putea activa acest lucru:
- o modalitate prin care unitățile să asculte mesajele de pe perete și să le transmită
- un fel de precizare
--ignora ExecStopPre
pe consolă.
Acesta din urmă poate fi, deși neergonomic, să fie realizat folosind systemctl --user edit --runtime
. Cu toate acestea, a doua abordare are timpul de nefuncționare al (ab)utilizarii ExecStopPre, în timp ce poate fi deja necesară pentru alte scopuri.
Cu toate acestea, m-aș bucura de idei despre cum să obții (1) sau să fac (2) ceva mai plăcut să lucrezi. Sau chiar abordări complet diferite ale problemei.