Sysadmin Essentials
Rust developers deploying services need baseline Linux skills: files, permissions, processes, systemd, and logs. These commands debug production and local Docker hosts alike.
Search across all documentation pages
Rust developers deploying services need baseline Linux skills: files, permissions, processes, systemd, and logs. These commands debug production and local Docker hosts alike.
ls -la
chmod 755 /usr/local/bin/my-service
systemctl status my-service
journalctl -u my-service -f --since "10 min ago"
df -h && du -sh target/
ulimit -nWhen to reach for this:
# Create service user and install binary
sudo useradd -r -s /bin/false myservice
sudo install -o myservice -g myservice -m 755 \
target/release/my-service /usr/local/bin/my-service
sudo systemctl daemon-reload
sudo systemctl enable --now my-service
curl -sf localhost:8080/healthWhat this demonstrates:
tracing subscriber| Symbol | Meaning |
|---|---|
rwx user/group/other | read, write, execute bits |
4 | read, 2 write, 1 execute |
Rust binaries need execute bit; config files often 640 root + service group.
High-concurrency Axum services need LimitNOFILE=65535 in systemd unit.
target/ - incremental builds fail oddly. Fix: monitor df, clean old artifacts.TZ for shell only.audit2why or documented context.RateLimitInterval for debug windows.| Alternative | Use When | Don't Use When |
|---|---|---|
| Docker only | No SSH on prod | Debugging host networking |
| Ansible | Repeated fleet setup | One-off local VM |
| Kubernetes | Orchestrated pods | Single VM prototype |
systemd is default on modern Linux; use native units for Rust daemons.
journald when stdout connected; prefer structured tracing either way.
Stack versions: This page was written for Rust 1.97.0 (edition 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, and Polars 0.46+.
Reviewed by Chris St. John·Last updated Jul 16, 2026