ubuntu开机自启动
1. 创建启动脚本
首先,需要创建一个启动脚本,用于设置 ROS 2 的环境变量并启动所需的节点或 launch 文件。例如,创建一个名为 ros2_startup.sh 的脚本:
#!/bin/bash
# 设置 ROS 2 环境变量
source /opt/ros/ros2-foxy/setup.bash
source /path/to/your/workspace/install/setup.bash# 启动 ROS 2 launch 文件
ros2 launch /path/to/your/launch/file.launch.py
赋予脚本执行权限:
sudo chmod +x ros2_startup.sh
2. 创建 systemd 服务文件
sudo nano ros2_launch.service
在文件中添加以下内容:
[Unit]
Description=ROS2 Launch Service
After=network.target[Service]
Type=simple
User=nvidia
ExecStart=/bin/bash -c "source /opt/ros/ros2-foxy/setup.bash && source /path/to/your/workspace/install/setup.bash && /path/to/ros2_startup.sh"
WorkingDirectory=/path/to/your/workspace[Install]
WantedBy=multi-user.target
3. 启用并启动服务
完成服务文件的创建后,重新加载 systemd 配置并启用服务,这样就会开机自启动+循环启动了
sudo systemctl daemon-reload
sudo systemctl enable ros2_launch.service
sudo systemctl start ros2_launch.service
可以使用以下命令检查服务是否正常运行
sudo systemctl status ros2_launch.service
4.关闭服务
临时停止服务
sudo systemctl stop ros2_launch.service
直接禁用服务,以后就再不会有此服务
sudo systemctl disable ros2_launch.service