以服务的形式开机自启动 roscore
为了让 ROS 节点在系统启动时自动启动,我们可以将 roscore 作为服务来实现。
创建服务
sudo vim /lib/systemd/system/my-roscore.service
输入如下内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
######################################################################
# sudo systemctl daemon-reload
# 管理服务 [使能自启动|启动|停止|重启|查看状态]
# sudo systemctl [enable|start|stop|restart|status] my-roscore.service
######################################################################
[Unit]
Description=roscore
After=network.target
[Service]
Type=simple
Restart=on-failure
User=root
Group=root
Environment=ROS_MASTER_URI=http://localhost:11311
ExecStart=/bin/bash -c 'source /opt/ros/noetic/setup.bash; roscore'
[Install]
WantedBy=multi-user.target
服务管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 使配置生效
sudo systemctl daemon-reload
# 打开自启动
sudo systemctl enable my-roscore.service
# 关闭自启动
sudo systemctl disable my-roscore.service
# 启动
sudo systemctl start my-roscore.service
# 停止
sudo systemctl start my-roscore.service
# 重启
sudo systemctl restart my-roscore.service
# 查看状态
sudo systemctl status my-roscore.service
本文由作者按照 CC BY 4.0 进行授权