一、创建服务文件
1. 文件位置与命名:
在/etc/systemd/system目录下新建.service 文件
sudo vim /etc/systemd/system/my_service.service
2. 文件内容模板:
.service文件基础服务配置模板
[Unit]
Description=ROS2 Service # 自定义服务描述
After=network.target # 依赖网络启动后执行
[Service]
Type=simple
User=root # 运行用户(可选)
WorkingDirectory=/path # 脚本所在目录
ExecStart=/path/myService.sh # 主启动命令
Restart=on-failure # 异常退出时自动重启
RestartSec=5 # 重启间隔(秒)
StandardOutput=journal # 日志配置
StandardError=journal # 日志配置
[Install]
WantedBy=multi-user.target # 启动级别配置
3. 如若修改.service文件,需要重载
sudo systemctl daemon-reload
二、脚本文件编写
1. ros2节点启动脚本文件示例:
#!/usr/bin/zsh
export PYTHONPATH=/root/anaconda3/envs/backend/lib/python3.8/site-packages:$PYTHONPATH
export ROS_DOMAIN_ID=10 # 设置 ROS_DOMAIN_ID,用于区分多个不同的ROS2网络
source /<工作空间>/install/setup.zsh
# 初始化 conda,确保可以使用 `conda activate`
source /root/anaconda3/etc/profile.d/conda.sh
conda activate backend
ros2 run <功能包> <可执行文件>
三、启动服务及其他操作
1. 启动服务
sudo systemctl start <服务名称>
2. 检查服务启动状态
sudo systemctl status <服务名称>
3. 重启服务
sudo systemctl restart <服务名称>
4. 暂停服务
sudo systemctl stop <服务名称>
5. 设置开机自启动
sudo systemctl enable <服务名称>
6. 重载服务配置
sudo systemctl reload <服务名称>
7. 查看失败日志
journalctl -u <服务名> --since "5分钟前"
1467

被折叠的 条评论
为什么被折叠?



