在 Linux 系统中,systemctl
是 systemd
系统和服务管理器的核心工具。大多数现代 Linux 发行版(如 Ubuntu 16.04+/CentOS 7+)已默认安装 systemd
和 systemctl
。以下是测试 systemctl
是否正常工作的步骤:
# 检查 systemd 版本(确认是否安装)
systemctl --version
# 检查 systemctl 路径
which systemctl
# 查看系统整体状态
systemctl status
# 检查系统启动时间(确认 systemd 正常运行)
systemd-analyze time
# 列出所有已加载的单元(服务、挂载点、设备等)
systemctl list-units
# 仅列出失败的单元
systemctl --failed
选择一个常用服务(如 sshd
、nginx
或 cron
)进行测试:
# 查看服务状态(以 sshd 为例)
systemctl status sshd
# 启动/停止/重启服务
sudo systemctl start sshd
sudo systemctl stop sshd
sudo systemctl restart sshd
# 启用/禁用开机自启
sudo systemctl enable sshd
sudo systemctl disable sshd
systemd
使用 journalctl
管理日志,测试日志是否正常记录:
# 查看全部日志
journalctl
# 查看指定服务的日志(如 sshd)
journalctl -u sshd
# 实时跟踪日志
journalctl -f
sudo nano /etc/systemd/system/test.service
输入以下内容:
[Unit]
Description=Test Service
[Service]
ExecStart=/bin/bash -c "while true; do echo 'Test service running...' >> /tmp/test.log; sleep 10; done"
[Install]
WantedBy=multi-user.target
# 重载 systemd 配置
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start test.service
# 查看状态和日志
systemctl status test.service
journalctl -u test.service
# 检查服务输出
cat /tmp/test.log
问题 1:systemctl
命令不存在
说明系统未使用 systemd
(如旧版 Debian/Ubuntu 使用 sysvinit
)。可通过以下命令确认:
ps -p 1 -o comm= # 若返回 "init" 或 "upstart",则非 systemd
问题 2:服务启动失败
使用 journalctl -xe
查看详细错误日志。
问题 3:权限不足
确保使用 sudo
执行需要 root 权限的操作。
通过上述步骤,你可以验证 systemctl
是否正常工作。如果所有命令均能正确执行并返回预期结果,则说明 systemd
和 systemctl
已正常安装并运行。