You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Current logic in the persistently running upsdrvctl instance that started "all" drivers is to monitor that their processes are alive (and it "was asked for explicit foregrounding"), and if something failed - stops them all and exits (assuming the external powers that be, like nut.exe wrapper on Windows, would restart it all consistently).
TODO:
define an option to restart the failed driver, and not touch the others
define an option to NOT restart the failed driver (at least if someone else started a copy, to avoid the tug-of-war), and not touch the others
see if such options can be applied also to the mode where upsdrvctl starts one driver, and if it tracks driver liveliness when not remaining foregrounded itself or if we want it to in such cases
now with upsdrvquery capability, it might also try PING/PONG sometimes to check if the driver responds
for such status checks, and for the status CLI operation, consider using pthreads to get answers from multiple drivers more quickly (see nut-scanner code for inspiration)
In some NUT deployments,
upsdrvctlis THE service manager for drivers, with nobody else (like systemd) around to restart them.Current logic in the persistently running
upsdrvctlinstance that started "all" drivers is to monitor that their processes are alive (and it "was asked for explicit foregrounding"), and if something failed - stops them all and exits (assuming the external powers that be, likenut.exewrapper on Windows, would restart it all consistently).TODO:
upsdrvctlstarts one driver, and if it tracks driver liveliness when not remaining foregrounded itself or if we want it to in such casesupsdrvquerycapability, it might also tryPING/PONGsometimes to check if the driver respondsstatusCLI operation, consider using pthreads to get answers from multiple drivers more quickly (seenut-scannercode for inspiration)upsdrvctldoes exit, propagate the failed exit-code (per Investigate issue #3302 driver behavior when upsd aborts #3368 investigation, it currently returns0at least in Windows builds)