10. 服务管理与进程控制
本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 进行服务管理和进程控制,配合 SecureFX 传输配置文件。内容涵盖 Systemd 服务管理(创建服务、配置开机自启、运行目标)、进程管理(监控、终止、优先级调整)和日志管理(查看、清理日志),以 sshd 和 chronyd 为例,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。
10.1 前提条件
- RHEL 9 已安装(参考第 1 章),主机名设置为
LinuxDC。 - 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
- 使用 SecureFX 传输文件(SFTP 协议)。
- 具有 root 或 sudo 权限。
sshd和chronyd服务已安装(参考第 4 章和第 9 章)。- EPEL 仓库已启用(参考第 5 章,
dnf install -y epel-release)。
💡 提示:Systemd 是 RHEL 9 默认的服务管理器,支持单元文件和依赖管理。在 RHEL 10 中,Systemd 增强了对容器集成和更细粒度的资源控制(如 cgroups v2 默认启用)。
10.2 服务管理
10.2.1 创建 Systemd 服务单元
-
创建自定义服务:
vim /etc/systemd/system/myservice.service # 创建服务单元文件 # 示例内容: [Unit] Description=My Custom Service After=network.target [Service] ExecStart=/usr/bin/my_script.sh Restart=always [Install] WantedBy=multi-user.target -
重载并启用服务:
systemctl daemon-reload # 重载 Systemd 配置 systemctl enable --now myservice # 启用并启动服务
✅ 检查点:
systemctl status myservice显示 active(running)。
10.2.2 配置开机自启
- 启用服务:
systemctl enable sshd # 设置 sshd 开机自启 systemctl enable chronyd # 设置 chronyd 开机自启
🧠 知识点:
enable链接单元到目标(如 multi-user.target)。查看:systemctl is-enabled sshd。
10.2.3 运行目标管理
-
查看当前运行目标:
systemctl get-default # 显示默认目标(如 graphical.target) -
切换运行目标:
systemctl set-default multi-user.target # 设置为命令行模式 systemctl isolate rescue.target # 切换到救援模式
💡 提示:运行目标类似于 SysV runlevels。生产环境优先 multi-user.target。
10.3 进程管理
10.3.1 进程监控
- 查看进程:
ps aux # 显示所有进程 top # 交互式监控(按 q 退出) htop # 增强版(需安装 dnf install -y htop)
10.3.2 终止进程
- 终止进程:
kill <pid> # 优雅终止(信号 15) kill -9 <pid> # 强制终止(信号 9,慎用) pkill -f process_name # 根据名称终止
10.3.3 调整优先级
- 调整 nice 值:
nice -n 10 command # 以 nice 10 运行命令(低优先级) renice -n -5 <pid> # 提高现有进程优先级(需 root)
✅ 检查点:
ps -eo pid,nice,comm查看优先级。🧠 知识点:nice 值范围 -20(高)到 19(低)。在 RHEL 10 中,进程管理可能集成更多 cgroup 限制,提升资源隔离。
10.4 日志管理
10.4.1 查看日志
- 使用 journalctl:
journalctl -u sshd # 查看 sshd 服务日志 journalctl -f # 实时跟踪系统日志 journalctl --since "1 hour ago" -u chronyd # 查看最近 1 小时 chronyd 日志
10.4.2 清理日志
- 清理旧日志:
journalctl --vacuum-time=7d # 清理 7 天前日志 journalctl --vacuum-size=100M # 限制日志大小为 100M
💡 提示:配置
/etc/systemd/journald.conf自定义日志策略。
10.4.3 配置远程日志
-
编辑 rsyslog 配置:
vim /etc/rsyslog.conf # 添加: *.* @192.168.1.200:514 # 发送所有日志到远程服务器 -
重启 rsyslog:
systemctl restart rsyslog
✅ 检查点:
logger "Test log"发送测试日志,远程服务器查看。
10.5 常见问题与排查
🔍 故障排查:
-
问题 1:服务启动失败
解决:systemctl status <service>检查错误,或journalctl -u <service>查看日志。 -
问题 2:自定义服务不运行
解决:检查单元文件名或配置文件(/etc/systemd/system/)。 -
问题 3:进程占用高
解决:使用htop或top查找高 CPU 进程,必要时终止(kill -9)。 -
问题 4:日志清理失败
解决:确认是否有 root 权限(sudo journalctl --vacuum-time=7d)。
10.6 实践任务
- 使用 SecureCRT 通过 SSH(端口 2222)登录
LinuxDC,启用并启动sshd服务,验证其状态。 - 创建自定义服务
myservice,确保其在网络服务后启动。 - 使用
htop监控进程,终止一个模拟的高 CPU 进程。 - 配置
rsyslog发送日志到远程服务器(192.168.1.200:514)。
✅ 检查点:服务运行正常,进程可控,日志发送成功。
10.7 自测问题
-
问题 1:如何查看当前默认运行目标?
答案:systemctl get-default -
问题 2:如何终止特定进程?
答案:kill <pid>或kill -9 <pid>(强制终止,慎用)。 -
问题 3:如何查看最近 1 小时的
sshd日志?
答案:journalctl -u sshd --since "1 hour ago"
🧾 总结:
本章完整介绍了 RHEL 9 服务管理和进程控制的核心操作,包括 Systemd 配置、进程监控和日志管理。掌握这些技能可确保系统稳定运行,为后续内核管理与安全加固提供高效工具支持。