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