参考自Linux 设置开机启动项的几种方法
本人在树莓派baspbain stretch系统上设置ros程序的开机自启,曾使用robot_upstart
包,最后选择了在/etc/init.d/
文件夹中加入脚本的方法。
修改/bin/sh指向
查看/bin/sh指向哪个shell
ls /bin/sh -al
若指向的是dash,将其修改为bash
sudo dpkg-reconfigure dash
选择no则修改为了bash
也可以选择不修改,那么在脚本里需要将source xxxx.bash
,改成./xxxx.sh
加入启动脚本
将要启动的所有launch文件,写进一个launch中
在/etc/init.d/
文件夹下加入文件turtlebot3_bringup2
我的文件内容为:
#!/bin/bash
### BEGIN INIT INFO
# Provides: turtlebot3_bringup
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: turtlebot3_bringup
# Description: turtlebot3_bringup
### END INIT INFO
source /opt/ros/kinetic/setup.bash
source /home/pi/catkin_ws/devel/setup.bash
roslaunch turtlebot3_bringup turtlebot3_bringup.launch > /home/pi/catkin_ws/turtlebot3_bringup.log 2>&1
exit 0
设置权限:
sudo chmod 755 /etc/init.d/turtlebot3_bringup2
将脚本加入启动列表
cd .etc/init.d
sudo update-rc.d turtlebot3_bringup2 defaults 95
95是脚本启动的顺序号,按照自己的需要相应修改即可。
然后重启,即可。
将脚本从启动列表中剔除的方法:
cd /etc/init.d
sudo update-rc.d -f turtlebot3_bringup2 remove
版权声明:本文为qingtian11112原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。