feat: add hermes-node restart command - #124
Merged
Merged
Conversation
Restarting a daemon currently requires two manual invocations (`hermes-node stop` then `hermes-node run`), and a run issued too quickly after a stop can race the old process for the lock. Add `hermes-node restart [--config <path>]`: - Stops the running daemon (SIGTERM -> SIGKILL escalation, same path as `hermes-node stop`) and then starts a fresh one - With no daemon running it simply starts - A failed stop aborts the restart, so it never starts while another daemon might still hold the lock - Shares the single-instance guard: the start goes through the same detach path as `hermes-node run` The start hook is a package variable (startDaemon, defaulting to runDetach) so tests can stub the fork — a Go test binary can't act as the daemon child. Tests: restart stops a real sacrificial PID then starts; not-running case skips the stop; stop-failure aborts without starting. Signed-off-by: Blasius Patrick <blasius.patrick@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
hermes-node restart [--config <path>]— a one-command way to bounce the daemon (previously:hermes-node stop+hermes-node run).hermes-node stop) then starts a fresh onehermes-node runTest Plan
go test ./...passes;go vet+gofmtcleanNotes
startDaemon, defaultrunDetach) so tests can stub the fork — a Go test binary can't act as the daemon child (same override seam asosExecutable/osUserHomeDir)