Add procps to fix ps: command not found during self-update - #27
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds procps to the RoonServer Docker image so the bundled RoonServer self-update launcher can call ps successfully.
Changes:
- Adds a runtime dependency comment explaining why
procpsis needed. - Installs
procpswith the existing Debian runtime package set.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The official RoonServer Docker image was missing the procps package,
so the stock RoonServer self-update launcher failed at line 56 with
"ps: command not found" while killing stale RAATServer processes:
for i in $(ps -Awwo pid,args | grep '[R]AATServer' | awk '{print $1}'); do kill -9 $i; done
That script is bundled with RoonServer and downloaded at runtime, so we
can't refactor it to pkill — the fix is to provide a real ps by adding
procps to the runtime dependencies. The healthcheck still reads /proc
directly and does not depend on procps.
Also assert the ps runtime contract in tests/smoke.sh so a future
dependency change can't silently drop procps and reintroduce this bug:
one check that ps exists, and one that `ps -Awwo pid,args` (the exact
flags the launcher uses) executes. The invocation check asserts ps's own
exit code rather than piping through grep|awk, whose exit would be 0 even
if ps were missing.
Verified in a built image: ps resolves to /usr/bin/ps (procps-ng 4.0.4),
the pipeline runs, and the full smoke suite passes (58/0).
Fixes RRD-1551
decriptor
force-pushed
the
fix/rrd-1551-add-procps
branch
from
May 28, 2026 17:15
c9f5ecd to
dbdc7dd
Compare
stevebecker-roon
approved these changes
May 29, 2026
stevebecker-roon
left a comment
Contributor
There was a problem hiding this comment.
Looks good, note regarding platform is a good note for when we support other platforms.
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
procpspackage to the RoonServer Docker image runtime dependencies, providingps.ps: command not found(line 56) while killing staleRAATServerprocesses.Background
The bundled RoonServer launcher (downloaded at runtime, not part of this repo) runs:
The base
debian:trixie-slimimage has nops, so the update flow failed. Since we don't control that script, we can't refactor it topkill— the correct fix is to provide a realps. The healthcheck continues to read/procdirectly and does not depend onprocps.Test plan
docker buildsucceeds with the changepsresolves to/usr/bin/ps(procps-ng 4.0.4) in the built imageps -Awwo pid,args | grep '[R]AATServer' | awk '{print $1}'runs with exit 0Fixes RRD-1551