使用Systemd设置ROS 2节点开机自启_MAVER1CK的博客-CSDN博客
参考上面两个文章
准备
先删除rc.service,原先由这个文件,是空的但不能编辑。
sudo rm /usr/lib/systemd/system/rc.service
创建rc.service,并放入/usr/lib/systemd/system/目录下
sudo vim /usr/lib/systemd/system/rc.service
编写rc.service
[Unit]
Description=ros2 launch script
[Service]
Type=simple
# 指定用户名,也就是Ubuntu系统下当前的用户名
User=$your_name$
# 运行脚本xxx.sh,确保脚本具备可执行权限,具体指令写在xxx.sh中
ExecStart=/home/$your_path$/rc.sh
PrivateTmp=true
KillMode=control-group
[Install]
WantedBy=multi-user.target
具体指令写在rc.sh中,这里脚本内的其实就是在终端命令行中运行的命令!!!根据实际情况修改即可。
vim rc.sh
#!/bin/bash
# 设置环境变量,ROS2版本为humble
source /opt/ros/humble/setup.bash
source /home/ros2_ws/install/setup.bash
ros2 launch /your/launch/path
修改运行权限
sudo chmod 777 /usr/lib/systemd/system/rc.service
sudo chmod 777 rc.sh
启动服务
sudo systemctl daemon-reload # 重新加载服务
systemctl start rc.service # 启动服务
systemctl status rc.service # 查看服务状态
systemctl enable rc.service # 开机启动