systemd 服务管理指南 Print

  • 9

systemd 是现代 Linux 发行版的初始化系统和服务管理器,替代了传统的 SysV init。

服务管理命令

# 启动服务
sudo systemctl start nginx

# 停止服务
sudo systemctl stop nginx

# 重启服务
sudo systemctl restart nginx

# 重新加载配置
sudo systemctl reload nginx

# 查看状态
sudo systemctl status nginx

# 开机自启
sudo systemctl enable nginx

# 取消开机自启
sudo systemctl disable nginx

# 查看是否开机自启
sudo systemctl is-enabled nginx

自定义服务单元文件

创建 /etc/systemd/system/myapp.service

[Unit]
Description=My Application Service
After=network.target
Wants=mysql.service

[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/myapp
ExecStart=/usr/local/bin/node /opt/myapp/server.js
Restart=always
RestartSec=5
Environment=NODE_ENV=production
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable myapp
sudo systemctl start myapp

查看日志

# 查看服务日志
sudo journalctl -u myapp

# 实时跟踪
sudo journalctl -u myapp -f

# 最近 50 行
sudo journalctl -u myapp -n 50

# 按时间
sudo journalctl -u myapp --since "10 minutes ago"

# 查看所有服务日志大小
sudo journalctl --disk-usage

定时器(替代 cron)

# /etc/systemd/system/backup.timer
[Unit]
Description=Daily backup

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

Was this answer helpful?

« Back