跳到主要内容

systemd 的基本使用

· 阅读需 2 分钟
素明诚
Full stack development

服务控制

  • 启动服务(可简写)
sudo systemctl start apache2.service
sudo systemctl start apache2
  • 停止服务
sudo systemctl stop apache2.service
  • 重新启动服务
sudo systemctl restart apache2.service
  • 查看服务状态
systemctl status apache2.service

服务开机自启设置

  • 启用服务开机自启
sudo systemctl enable apache2.service
  • 禁用服务开机自启
sudo systemctl disable apache2.service

系统状态查看

  • 查看服务的网络连接
ss -tnlp | grep apache2
  • 查看所有日志
journalctl -u apache2.service
  • 查看最新日志
journalctl -u apache2.service -e
  • 列出所有运行的服务
systemctl list-units --type=service
  • 查看系统日志
journalctl

定时器和计划任务

  • 创建一个文件 /etc/systemd/system/backup.service 来定义要执行的任务:
plaintextCopy code[Unit]
Description=Daily Backup

[Service]
ExecStart=/usr/local/bin/backup.sh
  • 创建一个文件 /etc/systemd/system/backup.timer 来定义定时器:
plaintextCopy code[Unit]
Description=Runs backup every day at 2am

[Timer]
OnCalendar=*-*-* 020000
Unit=backup.service

[Install]
WantedBy=timers.target
  • 启动并启用定时器:
sudo systemctl start backup.timer
sudo systemctl enable backup.timer

创建和管理自定义服务

  • 以下是一个简单的自定义服务单元文件的例子,该文件应保存为 /etc/systemd/system/custom.service
plaintextCopy code[Unit]
Description=Custom Service

[Service]
ExecStart=/usr/local/bin/custom.sh
Restart=always

[Install]
WantedBy=multi-user.target
  • 在创建了单元文件后,可以通过以下命令启动、停止或重新启动服务:
sudo systemctl start custom.service
sudo systemctl stop custom.service
sudo systemctl restart custom.service