Skip to content

Investigate pipe-file protocol (driver-upsd) use to kill old driver instances #1664

@jimklimov

Description

@jimklimov

Sometimes drivers get wedged, so restarting it requires not just a SIGTERM but a SIGKILL of some known PID. Part of the problem is learning that PID, especially if earlier attempts to restart failed and the file got deleted.

Some brainstorm ideas:

  • Driver might tell its PID to UPSD when they connect, so the data server would remember and report it (constrained to some link e.g. localhost, credentials, etc?) - so a new driver starting can ask if a copy by same name exists and what its PID is.
  • Extend driver-server protocol to let data server tell the driver to die, reconnect, etc. (if not wedged) - see also Investigate dual-process model like upsmon for drivers #1663
    • maybe this can help also with powerkill handling where we now stop a driver to run its new process with kill option
  • Can a new driver instance figure out the PID by existing pipe file (like fuser it) and/or attach to same pipe to tell the older sibling to report the PID which we can send signals to (kill), or explicitly to die off (if not wedged)?

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementrefactor/fightwarnPR or issue proposal to improve code maintainability without functional changes, or to fix warnings

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions