Ubuntu配置开机自启动
一、 创建启动脚本
创建启动脚本start_control_ros.sh
#!/bin/bash # Wait for the network to be up (if needed) sleep 30 # Source your ROS setup.bash (adjust the path if necessary) source /opt/ros/noetic/setup.bash source /home/boat/duyiming_ws/devel/setup.bash export ROS_MASTER_URI=http://192.168.0.100:11311 export ROS_HOSTNAME=192.168.0.100 export ROS_IP=192.168.0.100 export ROS_LOG_MAX_DISK_BUFFER_SIZE=1024 # Launch your roslaunch file roslaunch test boat_modbus_TCP_speed_start.launch
二、创建 systemd 服务单元文件
2.1 编辑服务单元文件
创建一个 systemd 服务单元文件来管理你的启动脚本
sudo vi /etc/systemd/system/boat_start_ros.service
内容如下:
[Unit] Description=ROS Node Example After=network.target Wants=network-online.target [Service] Type=simple ExecStart=/home/boat/duyiming_ws/src/test/scrips/boat_start/start_control.sh Restart=always User=boat RestartSec=5 # 在重启尝试之间添加 5 秒延迟 [Install] WantedBy=multi-user.target
network.target
),确保在网络准备好后再启动。
always
表示始终重启,可以根据需要调整。
your_username
为你的实际用户名。2.2 设置文件权限并启用服务
设置文件权限:
sudo chmod +x /home/boat/duyiming_ws/src/test/scripys/boat_start/start_control.sh
sudo chmod 644 /etc/systemd/system/boat_start_ros.service
sudo systemctl daemon-reload # 重新加载 systemd 配置
sudo systemctl enable boat_start_ros.service
三、启动和管理服务
启动服务:
sudo systemctl start boat_start_ros.service
停止服务:
sudo systemctl stop boat_start_ros.service
重启服务:
sudo systemctl restart boat_start_ros.service
查看服务状态和日志:
sudo systemctl status boat_start_ros.service
四、查看日志
如果服务启动失败或遇到问题,你可以使用 journalctl
来查看系统日志:
journalctl -xe