Skip to content

distrobox.sh exports systemd service with incorrect ExecStart path on Immutable Distros (Bazzite) #25

@schmidkid41

Description

@schmidkid41

Hello Elegos!

Full disclosure, I am very new Linux user and have been tooling around with various distros to find what works for my system. I am also not at all technically gifted in coding. As such, when i ran into repeated issues trying to get this app working, i poured many hours into Gemini and seem to have found an error that I wanted to share with you. I tried to sufficiently prompt and craft this report to give you the full context of my situation. If it makes sense to you, I hope it helps! Thank you for putting together this app and for making my experience with Linux even better! 💃

I am reporting a path mismatch in the distrobox.sh installation script that prevents the lam-daemon from starting on immutable operating systems. While the script correctly exports the binaries to the user's local path, the generated systemd service file still points to a non-existent root directory path.

This issue was identified and resolved through a collaborative troubleshooting session with Google Gemini.

Environment:

OS: Bazzite Linux (GNOME Edition)

Architecture: Immutable / Atomic (rpm-ostree)

Installation Method: Official distrobox.sh develop script

Device: SteelSeries Arctis Nova Pro Wireless Headset

The Problem:
After running the installer, systemctl --user status lam-daemon.service returns:
Main PID: XXXXX (code=exited, status=203/EXEC)
Process: XXXXX ExecStart=/usr/bin/lam-daemon (code=exited, status=203/EXEC)

The script successfully places the binary in ~/.local/bin/lam-daemon, but the systemd service file is hardcoded to look in /usr/bin/lam-daemon. Since /usr/bin/ is read-only on Bazzite, the file does not exist there, causing an infinite crash/restart loop and desktop notification spam.

The Solution (Workaround):
We successfully restored functionality by creating a systemd drop-in override to point the service to the correct local binary:
Bash

Create the override directory

mkdir -p ~/.config/systemd/user/lam-daemon.service.d

Inject the correct path

echo -e "[Service]\nExecStart=\nExecStart=$HOME/.local/bin/lam-daemon" > ~/.config/systemd/user/lam-daemon.service.d/override.conf

Reload and restart

systemctl --user daemon-reload
systemctl --user restart lam-daemon.service

Suggested Fix for distrobox.sh:
The script should be updated to ensure that when exporting the lam-daemon.service to the host, the ExecStart path is dynamically set to the user's local bin directory (e.g., using $HOME/.local/bin/lam-daemon or the systemd variable %h/.local/bin/lam-daemon) rather than the standard /usr/bin/ path.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions