월. 8월 11th, 2025

Struggling with Linux services? systemctl is your ultimate control panel! As the central command for systemd (Linux’s modern init system), it manages background services, automations, and system resources. Let’s break it down step by step.


1. Core Concepts

  • Services: Background processes (e.g., web servers, databases).
  • Units: Configuration files (.service, .timer, .socket) defining how services run.
  • systemd: The system manager that starts/controls units at boot.
  • systemctl: Your command-line tool to interact with systemd.

2. Essential Commands

Command Purpose Example
systemctl start Launch a service sudo systemctl start nginx
systemctl stop Terminate a service sudo systemctl stop apache2
systemctl restart Stop + start (downtime) sudo systemctl restart ssh
systemctl reload Reload configs (no downtime!) sudo systemctl reload nginx
systemctl enable Auto-start at boot sudo systemctl enable docker
systemctl disable Remove auto-start sudo systemctl disable mysql
systemctl status Check health/logs systemctl status --no-pager -l ufw

3. Deep Dive: Service Status

Run systemctl status nginx:

● nginx.service - A high performance web server  
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled)  
   Active: active (running) since Mon 2023-08-21 10:00:00 UTC; 2h ago  
     Docs: man:nginx(8)  
   Process: 1234 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)  
 Main PID: 1235 (nginx)  
    Tasks: 2 (limit: 1137)  
   Memory: 4.3M  
   CGroup: /system.slice/nginx.service  
  • Loaded: Unit path + auto-start status (enabled/disabled).
  • Active: Current state (running, failed, inactive).
  • Logs: Last 10 lines of output (add --no-pager -l for full logs).

4. Advanced Operations

  • Mask a Service (prevent all activation):
    sudo systemctl mask apache2  # Creates symlink to /dev/null  
    sudo systemctl unmask apache2  
  • List All Units:
    systemctl list-units --type=service --all  
  • Check Boot Time:
    systemd-analyze blame  # Shows service startup times  

5. Troubleshooting with Journalctl

Inspect service logs via journalctl (systemd’s logging tool):

journalctl -u nginx -b --no-pager  # All logs since boot  
journalctl -u mysql --since "1 hour ago"  

Key flags:

  • -u: Filter by service name
  • -b: Current boot only
  • --no-pager: Output full logs without pagination

6. Pro Tips

Reload systemd After Editing Units:

sudo systemctl daemon-reload  

Verify Syntax Before Starting:

systemd-analyze verify /etc/systemd/system/myapp.service  

Kill Hung Services:

sudo systemctl kill -s SIGKILL stubborn-service  

Conclusion

systemctl transforms service management from chaotic to predictable. Start/stop apps, debug failures, and optimize boot times—all in one tool. Practice these commands daily, and you’ll master Linux services faster than a reboot! 🔧🐧

> Next Steps: Explore systemd timers (cron alternatives) and socket activation (on-demand services).

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다