sudo apt install ros-melodic-actionlib ros-melodic-actionlib-msgs ros-melodic-amcl ros-melodic-angles ros-melodic-ar-track-alvar ros-melodic-ar-track-alvar-msgs ros-melodic-base-local-planner ros-melodic-bfl ros-melodic-bond ros-melodic-bond-core ros-melodic-bondcpp ros-melodic-bondpy ros-melodic-camera-calibration ros-melodic-camera-calibration-parsers ros-melodic-camera-info-manager ros-melodic-carrot-planner ros-melodic-catkin ros-melodic-class-loader ros-melodic-clear-costmap-recovery ros-melodic-cmake-modules ros-melodic-collada-parser ros-melodic-collada-urdf ros-melodic-common-msgs ros-melodic-compressed-depth-image-transport ros-melodic-compressed-image-transport ros-melodic-control-msgs ros-melodic-costmap-2d ros-melodic-cpp-common ros-melodic-cv-bridge ros-melodic-ddynamic-reconfigure ros-melodic-depth-image-proc ros-melodic-depthimage-to-laserscan ros-melodic-desktop ros-melodic-desktop-full ros-melodic-diagnostic-aggregator ros-melodic-diagnostic-analysis ros-melodic-diagnostic-common-diagnostics ros-melodic-diagnostic-msgs ros-melodic-diagnostic-updater ros-melodic-diagnostics ros-melodic-dwa-local-planner ros-melodic-dynamic-reconfigure ros-melodic-ecl-build ros-melodic-ecl-concepts ros-melodic-ecl-config ros-melodic-ecl-errors ros-melodic-ecl-exceptions ros-melodic-ecl-license ros-melodic-ecl-mpl ros-melodic-ecl-threads ros-melodic-ecl-time ros-melodic-ecl-time-lite ros-melodic-ecl-type-traits ros-melodic-ecl-utilities ros-melodic-eigen-conversions ros-melodic-eigen-stl-containers ros-melodic-executive-smach ros-melodic-fake-localization ros-melodic-filters ros-melodic-gazebo-dev ros-melodic-gazebo-msgs ros-melodic-gazebo-plugins ros-melodic-gazebo-ros ros-melodic-gazebo-ros-pkgs ros-melodic-gencpp ros-melodic-geneus ros-melodic-genlisp ros-melodic-genmsg ros-melodic-gennodejs ros-melodic-genpy ros-melodic-geometric-shapes ros-melodic-geometry ros-melodic-geometry-msgs ros-melodic-gl-dependency ros-melodic-global-planner ros-melodic-gmapping ros-melodic-image-common ros-melodic-image-geometry ros-melodic-image-pipeline ros-melodic-image-proc ros-melodic-image-publisher ros-melodic-image-rotate ros-melodic-image-transport ros-melodic-image-transport-plugins ros-melodic-image-view ros-melodic-interactive-markers ros-melodic-joint-state-publisher ros-melodic-joy ros-melodic-kdl-conversions ros-melodic-kdl-parser ros-melodic-laser-assembler ros-melodic-laser-filters ros-melodic-laser-geometry ros-melodic-laser-pipeline ros-melodic-laser-proc ros-melodic-map-msgs ros-melodic-map-server ros-melodic-marker-msgs ros-melodic-media-export ros-melodic-message-filters ros-melodic-message-generation ros-melodic-message-runtime ros-melodic-mk ros-melodic-move-base ros-melodic-move-base-msgs ros-melodic-move-slow-and-clear ros-melodic-mrpt-bridge ros-melodic-mrpt-msgs ros-melodic-mrpt1 ros-melodic-nav-core ros-melodic-nav-msgs ros-melodic-navfn ros-melodic-navigation ros-melodic-navigation-layers ros-melodic-nodelet ros-melodic-nodelet-core ros-melodic-nodelet-topic-tools ros-melodic-octomap ros-melodic-openslam-gmapping ros-melodic-orocos-kdl ros-melodic-pcl-conversions ros-melodic-pcl-msgs ros-melodic-pcl-ros ros-melodic-people-msgs ros-melodic-perception ros-melodic-perception-pcl ros-melodic-pluginlib ros-melodic-polled-camera ros-melodic-pose-base-controller ros-melodic-pose-cov-ops ros-melodic-pose-follower ros-melodic-python-orocos-kdl ros-melodic-python-qt-binding ros-melodic-qt-dotgraph ros-melodic-qt-gui ros-melodic-qt-gui-cpp ros-melodic-qt-gui-py-common ros-melodic-qwt-dependency ros-melodic-random-numbers ros-melodic-range-sensor-layer ros-melodic-resource-retriever ros-melodic-rgbd-launch ros-melodic-robot ros-melodic-robot-pose-ekf ros-melodic-robot-state-publisher ros-melodic-robot-upstart ros-melodic-ros ros-melodic-ros-base ros-melodic-ros-comm ros-melodic-ros-core ros-melodic-ros-environment ros-melodic-rosbag ros-melodic-rosbag-migration-rule ros-melodic-rosbag-storage ros-melodic-rosbash ros-melodic-rosboost-cfg ros-melodic-rosbuild ros-melodic-rosclean ros-melodic-rosconsole ros-melodic-rosconsole-bridge ros-melodic-roscpp ros-melodic-roscpp-core ros-melodic-roscpp-serialization ros-melodic-roscpp-traits ros-melodic-roscreate ros-melodic-rosgraph ros-melodic-rosgraph-msgs ros-melodic-roslang ros-melodic-roslaunch ros-melodic-roslib ros-melodic-roslint ros-melodic-roslisp ros-melodic-roslz4 ros-melodic-rosmake ros-melodic-rosmaster ros-melodic-rosmsg ros-melodic-rosnode ros-melodic-rosout ros-melodic-rospack ros-melodic-rosparam ros-melodic-rospy ros-melodic-rosserial-arduino ros-melodic-rosserial-client ros-melodic-rosserial-msgs ros-melodic-rosserial-python ros-melodic-rosserial-server ros-melodic-rosservice ros-melodic-rostest ros-melodic-rostime ros-melodic-rostopic ros-melodic-rosunit ros-melodic-roswtf ros-melodic-rotate-recovery ros-melodic-rqt-action ros-melodic-rqt-bag ros-melodic-rqt-bag-plugins ros-melodic-rqt-common-plugins ros-melodic-rqt-console ros-melodic-rqt-dep ros-melodic-rqt-graph ros-melodic-rqt-gui ros-melodic-rqt-gui-cpp ros-melodic-rqt-gui-py ros-melodic-rqt-image-view ros-melodic-rqt-launch ros-melodic-rqt-logger-level ros-melodic-rqt-moveit ros-melodic-rqt-msg ros-melodic-rqt-nav-view ros-melodic-rqt-plot ros-melodic-rqt-pose-view ros-melodic-rqt-publisher ros-melodic-rqt-py-common ros-melodic-rqt-py-console ros-melodic-rqt-reconfigure ros-melodic-rqt-robot-dashboard ros-melodic-rqt-robot-monitor ros-melodic-rqt-robot-plugins ros-melodic-rqt-robot-steering ros-melodic-rqt-runtime-monitor ros-melodic-rqt-rviz ros-melodic-rqt-service-caller ros-melodic-rqt-shell ros-melodic-rqt-srv ros-melodic-rqt-tf-tree ros-melodic-rqt-top ros-melodic-rqt-topic ros-melodic-rqt-web ros-melodic-rviz ros-melodic-self-test ros-melodic-sensor-msgs ros-melodic-serial ros-melodic-shape-msgs ros-melodic-simulators ros-melodic-smach ros-melodic-smach-msgs ros-melodic-smach-ros ros-melodic-smclib ros-melodic-social-navigation-layers ros-melodic-stage ros-melodic-stage-ros ros-melodic-std-msgs ros-melodic-std-srvs ros-melodic-stereo-image-proc ros-melodic-stereo-msgs ros-melodic-teleop-twist-joy ros-melodic-teleop-twist-keyboard ros-melodic-tf ros-melodic-tf-conversions ros-melodic-tf2 ros-melodic-tf2-eigen ros-melodic-tf2-geometry-msgs ros-melodic-tf2-kdl ros-melodic-tf2-msgs ros-melodic-tf2-py ros-melodic-tf2-ros ros-melodic-theora-image-transport ros-melodic-topic-tools ros-melodic-trajectory-msgs ros-melodic-turtle-actionlib ros-melodic-turtle-tf ros-melodic-turtle-tf2 ros-melodic-turtlesim ros-melodic-urdf ros-melodic-urdf-parser-plugin ros-melodic-urg-c ros-melodic-urg-stamped ros-melodic-usb-cam ros-melodic-vision-opencv ros-melodic-visualization-msgs ros-melodic-viz ros-melodic-voxel-grid ros-melodic-webkit-dependency ros-melodic-xacro ros-melodic-xmlrpcpp ros-melodic-yocs-velocity-smoother libceres1 libceres-dev lua5.3 liblua5.3-0 liblua5.3-dev
ubuntu-18.04 抛弃了initrd, 改为 systemd 做开机管理. 没有 rc.local文件,以其为例, rc.local重新发挥作用
1. 建立rc-local.service文件
点击(此处)折叠或打开
- sudo vi /etc/systemd/system/rc-local.service
点击(此处)折叠或打开
-
[Unit]
-
Description=/etc/rc.local Compatibility
-
ConditionPathExists=/etc/rc.local
-
-
[Service]
-
Type=forking
-
ExecStart=/etc/rc.local start
-
TimeoutSec=0
-
StandardOutput=tty
-
RemainAfterExit=yes
-
SysVStartPriority=99
-
-
[Install]
- WantedBy=multi-user.target
点击(此处)折叠或打开
-
sudo vi /etc/rc.local
-
//内容
-
#!/bin/sh -e
-
#
-
# rc.local
-
#
-
# This script is executed at the end of each multiuser runlevel.
-
# Make sure that the script will "exit 0" on success or any other
-
# value on error.
-
#
-
# In order to enable or disable this script just change the execution
-
# bits.
-
#
-
# By default this script does nothing.
-
echo "看到这行字,说明添加自启动脚本成功。" > /usr/local/test.log
- exit 0
点击(此处)折叠或打开
-
sudo chmod +x /etc/rc.local
-
-
启用服务
-
sudo systemctl enable rc-local
-
-
//启动和检查
-
sudo systemctl start rc-local.service
-
sudo systemctl status rc-local.service
-
-
//查看日志
-
cat /usr/local/test.log
-
-
//关闭
- sudo systemctl start rc-local.service