服务管理基础

1. systemd简介

systemd是现代Linux系统中的初始化系统和服务管理器,它提供了一套完整的系统和服务管理解决方案。

2. 单元类型

  • service:系统服务
  • socket:进程间通信套接字
  • device:硬件设备
  • mount:文件系统挂载点
  • timer:定时器

服务管理命令

1. systemctl基本操作

查看服务状态

systemctl status service_name

启动服务

systemctl start service_name

停止服务

systemctl stop service_name

重启服务

systemctl restart service_name

重新加载配置

systemctl reload service_name

2. 服务开机自启

启用服务自启

systemctl enable service_name

禁用服务自启

systemctl disable service_name

查看服务是否自启

systemctl is-enabled service_name

3. 服务管理

查看所有服务

systemctl list-units --type=service

查看启动失败的服务

systemctl --failed

查看服务依赖关系

systemctl list-dependencies service_name

日志管理

1. journalctl日志查看

查看系统日志

journalctl

查看特定服务的日志

journalctl -u service_name

实时查看日志

journalctl -f

查看指定时间段的日志

journalctl --since "2023-01-01" --until "2023-01-02"

2. 系统日志

查看系统日志

cat /var/log/syslog

查看认证日志

cat /var/log/auth.log

查看启动日志

dmesg

系统监控

1. 资源监控

查看系统负载

uptime

查看内存使用

free -h

查看磁盘使用

df -h

查看IO状态

iotop

2. 性能分析

查看CPU信息

mpstat 1

查看内存详细信息

vmstat 1

查看进程资源使用

top

服务配置

1. 创建自定义服务

创建服务单元文件

vim /etc/systemd/system/myapp.service

服务单元文件示例

[Unit]
Description=My Application
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/myapp
Restart=always

[Install]
WantedBy=multi-user.target

2. 服务配置管理

重新加载服务配置

systemctl daemon-reload

编辑服务配置

systemctl edit service_name

查看服务配置

systemctl cat service_name

定时任务管理

1. systemd timer

创建定时器单元

vim /etc/systemd/system/myapp.timer

定时器单元示例

[Unit]
Description=Run MyApp daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

2. cron任务

编辑cron任务

crontab -e

查看cron任务

crontab -l

注意事项

  1. 修改系统服务配置前要先备份
  2. 重要服务的变更要在测试环境验证
  3. 定期检查系统日志排查潜在问题
  4. 合理配置服务的资源限制
  5. 注意服务之间的依赖关系