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

# 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

# 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:

# View service dependencies
systemctl list-dependencies service_name

# View reverse dependencies
systemctl list-dependencies --reverse service_name

2. System Status Monitoring

# 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

# 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
systemctl status service_name
  1. View detailed logs
journalctl -u service_name -n 100 --no-pager
  1. Verify configuration file
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