服务管理基础
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
注意事项
- 修改系统服务配置前要先备份
- 重要服务的变更要在测试环境验证
- 定期检查系统日志排查潜在问题
- 合理配置服务的资源限制
- 注意服务之间的依赖关系