ubuntu 20.04设置开机自启动脚本

ubuntu16.04 以后的版本不再使用initd管理系统,因此不再支持 update-rc.d 方式添加开机自启脚本。

Ubuntu18 版本开始,使用了systemd 替代了 initd 管理系统,并且默认已经取消了 /etc/rc.local 文件。只能使用 systemctrl 命令进行添加。

systemd 默认读取 /etc/systemd/system下的配置文件,该目录下的文件会链接 (软链接)/lib/systemd/system/ 下的文件。

一般系统安装完 /lib/systemd/system/ 下会有  rc-local.service  文件,即我们需要的配置文件。

一、使用 rc-local.service

rc-local.service 是系统自带的一个开机自启服务, 但是在 Ubuntu20 的 systemd 启动方式下,该服务默认没有开启。,启用它需要做些简单的配置。

在 路径下 /lib/systemd/system/rc-local.service 的 rc-local.service 的脚本,内容规定了 rc.local 的启动顺序和行为

1 建立开机启动服务

ubuntu 20.04设置开机自启动脚本_第1张图片

ExecStart=/etc/rc.local start

这行代码规定了这个service在开机启动时所执行的命令是:/etc/rc.local start。即运行 /etc/rc.local 脚本。不过可以看出,这个脚本的内容少了 [Install] 段,也就是说,没有定义如何做到开机启动,所以显然这时这个service是无效的。 因此我们就需要在后面帮他加上 [Install] 段


2、修改 rc-local.service 文件,添加  [Install] 

sudo chmod 777 /lib/systemd/system/rc-local.service 赋予修改权限,然后加入以上[Install]  的语句

ubuntu 20.04设置开机自启动脚本_第2张图片

3、然后设置该 rc-local.service 服务开机启动:

systemd 默认读取 /etc/systemd/system 下的配置文件, 所以还需要在 /etc/systemd/system 目录下创建软链接

sudo systemctl enable rc-local.service

4.创建 /etc/rc.local 

Ubuntu 20.04 默认不存在 /etc/rc.local。需要自己创建 touch /etc/rc.local

ubuntu 20.04设置开机自启动脚本_第3张图片

注意:调用 sh 脚本最后必须加上 & 是让脚本启动后在后台运行的作用, 否则可能会一直卡在开机界面

然后执行以下命令赋予 /etc/rc.local 执行权限,这步一定要有,否则没效果的

  1. sudo chmod 777 /etc/rc.local

  2. # 或者

  3. sudo chmod +x /etc/rc.local 

查看 rc-local服务的状态,显示 loaded 和 enabled

sudo systemctl status rc-local.service

ubuntu 20.04设置开机自启动脚本_第4张图片

5.开机自启动ros launch文件

#!/bin/bash

source /home/ros/catkin_ws/devel/setup.bash
Comand='roslaunch bringup navigation_bp.launch';

echo "------>" $Comand;
exec $Comand;

exit 0

注意:第一行的   “ #!/bin/bash ” 必须要!

 参考链接:

Ubuntu 20.04 设置开机自启脚本_ytusdc的博客-CSDN博客_ubuntu20开机自启动脚本

你可能感兴趣的:(Linux,ubuntu,linux,运维)