logo
GitHub

Complete Guide to Systemctl

What is Systemctl?

Key Features

  • Unified service management interface
  • Parallel service startup for faster system boot
  • On-demand service activation
  • Automatic service dependency management
  • Powerful service state tracking

Core Functions

1. Basic Service Management

Terminal window
# Start service
systemctl start service_name
# Stop service
systemctl stop service_name
# Restart service
systemctl restart service_name
# Reload configuration
systemctl reload service_name
# Check service status
systemctl status service_name

2. Service Auto-start

Terminal window
# Enable service auto-start
systemctl enable service_name
# Disable service auto-start
systemctl disable service_name
# Check if service is enabled for auto-start
systemctl is-enabled service_name

Advanced Features

1. Service Dependency Management

View service dependencies:

Terminal window
# View service dependencies
systemctl list-dependencies service_name
# View reverse dependencies
systemctl list-dependencies --reverse service_name

2. System Status Monitoring

Terminal window
# List all running services
systemctl list-units --type=service
# List all failed services
systemctl list-units --type=service --state=failed
# Check system boot time
systemctl show --property=SystemStartTimestamp

3. Service Log Management

Terminal window
# View service logs
journalctl -u service_name
# View recent service logs
journalctl -u service_name -n 50
# Real-time log monitoring
journalctl -u service_name -f

Best Practices

1. Service Configuration Files

Service unit file locations:

  • /etc/systemd/system/ - Units created by system administrator
  • /usr/lib/systemd/system/ - Units installed by packages

Example service configuration file:

[Unit]
Description=My Custom Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/my-service
Restart=always
[Install]
WantedBy=multi-user.target

2. Troubleshooting

Common diagnostic steps:

  1. Check service status
Terminal window
systemctl status service_name
  1. View detailed logs
Terminal window
journalctl -u service_name -n 100 --no-pager
  1. Verify configuration file
Terminal window
systemd-analyze verify /etc/systemd/system/service_name.service

3. Performance Optimization

Recommendations for improving system service performance:

  • Disable unnecessary services
  • Optimize service start order
  • Use socket activation
  • Configure appropriate service types
  • Set resource limits

Security Recommendations

Key measures to protect system services:

  • Principle of least privilege
  • Service isolation
  • Resource limitations
  • Log monitoring
  • Regular security audits

Common Issues

  1. Service Won’t Start
  • Check configuration file syntax
  • Verify dependency service status
  • Review detailed error logs
  1. Slow Service Startup
  • Analyze startup dependencies
  • Optimize service configuration
  • Check resource usage
  1. Service Abnormal Exit
  • Configure automatic restart policy
  • Set reasonable timeout values
  • Add error handling mechanisms