60 lines
1.6 KiB
Markdown
60 lines
1.6 KiB
Markdown
# systemd unit files
|
|
|
|
Two flavours: a per-user service (no root needed) and a system service.
|
|
|
|
## Per-user (recommended for personal use)
|
|
|
|
Runs under your login, socket lives in `$XDG_RUNTIME_DIR/cubby.sock`.
|
|
|
|
```bash
|
|
go build -o ~/.local/bin/cubby ./cmd/cubby
|
|
|
|
mkdir -p ~/.config/systemd/user
|
|
cp contrib/systemd/cubby.user.service ~/.config/systemd/user/cubby.service
|
|
|
|
systemctl --user daemon-reload
|
|
systemctl --user enable --now cubby.service
|
|
systemctl --user status cubby.service
|
|
```
|
|
|
|
To survive logout/reboot without an active session:
|
|
|
|
```bash
|
|
sudo loginctl enable-linger "$USER"
|
|
```
|
|
|
|
The socket path is `/run/user/$(id -u)/cubby.sock`.
|
|
|
|
## System-wide (shared across users via a group)
|
|
|
|
Runs as a dedicated `cubby` user, socket at `/run/cubby/cubby.sock`,
|
|
readable/writable by members of the `cubby` group.
|
|
|
|
```bash
|
|
sudo useradd --system --no-create-home --shell /usr/sbin/nologin cubby
|
|
sudo go build -o /usr/local/bin/cubby ./cmd/cubby
|
|
# or: go build -o ./cubby ./cmd/cubby && sudo install -m 0755 ./cubby /usr/local/bin/cubby
|
|
|
|
sudo cp contrib/systemd/cubby.service /etc/systemd/system/cubby.service
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable --now cubby.service
|
|
sudo systemctl status cubby.service
|
|
|
|
# Add yourself (and others) to the cubby group to connect:
|
|
sudo usermod -aG cubby "$USER"
|
|
# log out and back in for new group membership to take effect
|
|
```
|
|
|
|
## Common operations
|
|
|
|
```bash
|
|
# user service
|
|
systemctl --user restart cubby
|
|
systemctl --user stop cubby
|
|
journalctl --user -u cubby -f
|
|
|
|
# system service
|
|
sudo systemctl restart cubby
|
|
sudo systemctl stop cubby
|
|
sudo journalctl -u cubby -f
|
|
```
|