Skip to content

1.0-28 — Restart a service without starting a process

Choose a tag to compare

@github-actions github-actions released this 24 Sep 14:57
· 5 commits to master since this release
bd69bbd

A service is restarted without starting a process

Asking a supervisor to reload a service used to run the svc program. A host watching for unexpected launches
inside a container reported every deploy — both the program itself and jspawnhelper, the helper the JVM starts
in order to launch anything at all.

The command is now written straight to the supervisor's control channel: the named pipe at
<service>/supervise/control, one letter per command (h for a reload, t for a termination). That is exactly
what svc does, and the supervisor still does the signalling. Nothing is executed, so those reports stop.

A running supervisor holds the reading end of that pipe open, so the write happens at once. Nothing reading it
means the supervisor is not running: the step says so rather than waiting, and the command is not delivered
later when the supervisor comes back — a command arriving at an arbitrary later moment would be worse than none.

Also in this release

  • signal now takes term as well as hup.
  • A supervisor with no control channel is still supported: set serviceControl: program in the agent policy and
    the step runs serviceControlBinary with a fixed argument list, as before.
  • The agent no longer needs the control program mounted into its container.

Upgrading

Nothing to change. An agent policy that still names serviceControlBinary keeps working; the setting is simply
unused unless serviceControl: program is set. Leaving the control program mounted for a release or two keeps
that fallback available.

See Deploy steps for the step and the policy, and the
changelog for the releases before this one.