搜索

PythonReactSEOPDF
GitHub Skill

systemd-service

Create and debug systemd service unit files. Use when the user says "create a service", "systemd unit", "service won't start", "enable on boot", "systemctl", or asks about running apps as services.

mhalder☆ 1 仓库 Stars0 仓库 Forks

安装与使用

请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。

查看来源 ↗使用指南

技能说明

Systemd Service

Create and troubleshoot systemd service unit files.

Instructions

When creating:

  1. Understand the application requirements
  2. Determine service type (simple, forking, oneshot)
  3. Write unit file with proper dependencies
  4. Install and enable the service

When debugging:

  1. Check service status: systemctl status <service>
  2. Check logs: journalctl -u <service>
  3. Verify unit file syntax: systemd-analyze verify
  4. Identify and fix issues

Unit file template

[Unit]
Description=My Application Service
Documentation=https://example.com/docs
After=network.target
Wants=network-online.target

[Service]
Type=simple
User=appuser
Group=appuser
WorkingDirectory=/opt/myapp
Environment=NODE_ENV=production
ExecStart=/usr/bin/node /opt/myapp/server.js
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal

# Security hardening
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
ReadWritePaths=/opt/myapp/data

[Install]
WantedBy=multi-user.target

Service types

Type Use when
simple Process stays in foreground (default)
forking Process forks and parent exits (legacy daemons)
oneshot Process exits after doing work (scripts)
notify Process signals ready via sd_notify

Debug commands

# Status and logs
systemctl status myapp
journalctl -u myapp -f
journalctl -u myapp --since "10 min ago"

# Reload after editing unit file
systemctl daemon-reload

# Verify syntax
systemd-analyze verify /etc/systemd/system/myapp.service

# Show dependencies
systemctl list-dependencies myapp

Common issues

Problem Check Solution
Permission denied User/Group settings Create user, set ownership
Executable not found ExecStart path Use absolute paths
Fails immediately Type setting Match Type to app behavior
Doesn't start on boot Install section systemctl enable

Rules

  • MUST use absolute paths in ExecStart
  • MUST set appropriate User/Group (never root for apps)
  • MUST include restart policy for production services
  • Always include security hardening directives
  • Always verify syntax before enabling
  • Never run application services as root

使用示例

查看来源仓库中的使用示例与配置说明。

查看来源 ↗

来源历史

收录时间
2026-01-20
索引更新时间
2026-01-26
Branch
main

收录与同步日期属于本站记录。源码修改历史请查看来源仓库。

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!