1. 服务生命周期管理
命令 | 说明 | 示例 |
---|---|---|
sudo systemctl start <服务名> | 启动服务 | sudo systemctl start rosbag_docker.service |
sudo systemctl stop <服务名> | 停止服务 | sudo systemctl stop rosbag_docker.service |
sudo systemctl restart <服务名> | 重启服务 | sudo systemctl restart rosbag_docker.service |
sudo systemctl reload <服务名> | 重载配置(不重启) | sudo systemctl reload rosbag_docker.service |
sudo systemctl enable <服务名> | 设置开机自启 | sudo systemctl enable rosbag_docker.service |
sudo systemctl disable <服务名> | 禁用开机自启 | sudo systemctl disable rosbag_docker.service |
2. 服务状态查询
命令 | 说明 | 示例 |
---|---|---|
systemctl status <服务名> | 查看服务状态(含日志片段) | systemctl status rosbag_docker.service |
systemctl is-active <服务名> | 检查是否正在运行 | systemctl is-active rosbag_docker.service |
systemctl is-enabled <服务名> | 检查是否开机自启 | systemctl is-enabled rosbag_docker.service |
systemctl list-units --type=service | 列出所有已加载的服务 | systemctl list-units --type=service |
3. 日志与故障排查
命令 | 说明 | 示例 |
---|---|---|
journalctl -u <服务名> | 查看服务的完整日志 | journalctl -u rosbag_docker.service |
journalctl -u <服务名> -f | 实时跟踪日志 | journalctl -u rosbag_docker.service -f |
journalctl -u <服务名> --since "2024-01-01" | 按时间过滤日志 | journalctl -u rosbag_docker.service --since "1 hour ago" |
sudo systemctl daemon-reload | 重载 systemd 配置(修改服务文件后必执行) | sudo systemctl daemon-reload |
4. 高级操作
命令 | 说明 | 示例 |
---|---|---|
sudo systemctl mask <服务名> | 禁止服务被启动(即使手动) | sudo systemctl mask rosbag_docker.service |
sudo systemctl unmask <服务名> | 取消禁止 | sudo systemctl unmask rosbag_docker.service |
sudo systemctl edit <服务名> | 临时覆盖服务配置(生成片段文件) | sudo systemctl edit rosbag_docker.service |
5. 针对你的 rosbag_docker.service
的典型操作流程
# 1. 修改服务文件后重载配置
sudo systemctl daemon-reload
# 2. 启动服务并检查状态
sudo systemctl start rosbag_docker.service
systemctl status rosbag_docker.service
# 3. 查看实时日志(调试用)
journalctl -u rosbag_docker.service -f
# 4. 停止服务
sudo systemctl stop rosbag_docker.service
# 5. 设置开机自启
sudo systemctl enable rosbag_docker.service
常见问题解决
- 服务启动失败:
journalctl -xe # 查看系统级错误日志
- 修改服务文件后未生效:
确保执行了sudo systemctl daemon-reload
。 - 依赖未满足:
检查服务文件中After=
和Requires=
指定的依赖是否已启动(如docker.service
)。
掌握这些命令后,你可以高效管理任何 systemd 服务!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容