Systemd
Skill ComeOnOliver/skillshub/skills/TerminalSkills/skills/systemd
🧠The right skill, one API call. AI agent skills registry with token-efficient skill resolution. 5,000+ skills from 500+ top repos.From the repository description
npx -y skills add ComeOnOliver/skillshub --skill systemdAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.2 KB, 560 tokens by cl100k_base, as published. Nobody here has run it
systemd
Overview
systemd manages Linux services — start, stop, restart, enable on boot, and monitor processes. It replaces init scripts with declarative unit files. Handles dependencies, auto-restart, logging (journald), resource limits, and timers (cron replacement).
Instructions
Step 1: Create a Service
# /etc/systemd/system/myapp.service — Node.js app as a system service
[Unit]
Description=My Node.js Application
After=network.target postgresql.service
Wants=postgresql.service
[Service]
Type=simple
User=deploy
Group=deploy
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/node dist/server.js
Restart=always
RestartSec=5
Environment=NODE_ENV=production
Environment=PORT=3000
EnvironmentFile=/opt/myapp/.env
# Security hardening
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/myapp/uploads
# Resource limits
MemoryMax=512M
CPUQuota=80%
[Install]
WantedBy=multi-user.target
Step 2: Manage Service
sudo systemctl daemon-reload # reload after editing unit files
sudo systemctl enable myapp # start on boot
sudo systemctl start myapp # start now
sudo systemctl status myapp # check status
sudo systemctl restart myapp # restart
sudo systemctl stop myapp # stop
journalctl -u myapp -f # view live logs
journalctl -u myapp --since "1 hour ago" # recent logs
Step 3: Timer (Cron Replacement)
# /etc/systemd/system/backup.timer — Run backup daily at 3 AM
[Unit]
Description=Daily Backup Timer
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
# /etc/systemd/system/backup.service — The actual backup job
[Unit]
Description=Database Backup
[Service]
Type=oneshot
User=deploy
ExecStart=/opt/scripts/backup.sh
sudo systemctl enable --now backup.timer
systemctl list-timers # list active timers
Guidelines
- Always run
daemon-reloadafter changing unit files. - Use
Restart=alwaysfor production services — systemd auto-restarts on crash. journalctl -u service -fis the primary log viewer — replaces checking log files.- Timers are better than cron: persistent (catch up missed runs), dependency-aware, logged.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.