linux 自启动最晚的脚本,Linux自启动脚本及解决rc.local不执行脚本问题

使用的是rc.local上添加脚本方法。Ubuntu开机之后会执行/etc/rc.local文件中的脚本,

所以我们可以直接在/etc/rc.local中添加启动脚本。

给出使用中碰到的问题及解决方法:

如何测试自启动功能:

1、编辑/etc/rc.local,因为其为只读文件,需使其可写

cd /etc

chmod a+w rc.local

这时你就可以编辑rc.local了,双击进入

6f2510f3c9689d117e82e952a6b9c21d.png

红框内容为添加测试内容,脚本在exit 0之前的内容

2、解决添加测试内容后,开机不自启方法

如上添加了打印两句话的指令,但是重启开机后,并没有执行

发现是由于shell的问题造成的。有些命令需要在bash shell中运行,而不能在dash中运行。

从Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the GNUBourne-Again Shell). 但Login Shell还是bash。

解决方法:

1、将/etc/rc.local的命令改成更加兼容的模式,将"#!/bin/sh"改为"#!/bin/bash"

2、将/bin/sh重新链接到/bin/bash,方法如下:

方法一:终端执行 sudo dpkg-reconfigure dash,然后选择 no.

方法二:重新进行软链接,执行以下命令:

sudo rm /bin/sh

sudo ln -s /bin/bash /bin/sh

这样就将/bin/sh链接到了/bin/bash。reboot系统后,命令正常执行

我使用的是第一个方法连接的,实测可用。

此时,开机自启后,可以看到相应目录下的test.txt里被写入了指定内容。

使用rc.local自启脚本

4dfd16876e22cf7e2aab816f30474d2d.png

为了是在命令行中执行insmod命令安装的驱动能在重启之后还有的解决方法大致有一下两种方法:

(1)直接编译内核,把想安装的驱动在编译内核的时候给编译进去,这种方法比较麻烦,花的时候也比较的多,一般不采用这种方法(这种方法网上有很多资料可以参考)。

(2)这种方法比较简单:就是在启动脚本中加载模块,这样每次开机启动都自动加载相应的驱动模块。具体的方式如下:

在文件/etc/rc.local中加载你想要的模块程序即可

在Linux上使用开源can驱动时,每次按照步骤安装了can驱动,但是开机重启后,驱动在内核就不存在了,需要重新安装。开发的是无人驾驶监控上位机,实车测试时,不可能每次都安装一遍驱动再运行软件,所以需要编写一个开机自启脚本,将can驱动在每次开机时insmod。

脚本如下:

#!/bin/bash

gnome-terminal

su

123

cd /home/admin123/文档/zpcican

modprobe sja1000

insmod ./zpcican.ko

ifconfig can0

别忘了给脚本权限:

chmod +x ./test1.sh

即在rc.local的脚本处直接输入指令,而不是脚本的地址

1. 加载驱动模块: zpcican.ko

2. zpcican.ko存放路径:/home/admin123/文档/zpcican/zpcican.ko

3. 打开文件/etc/rc.local,添加加载命令 :

gnome-terminal      //打开终端的意思

su

123

cd /home/admin123/文档/zpcican

modprobe sja1000

insmod ./zpcican.ko

ifconfig can0

是不是和脚本一样,哈哈,其实是我懒得写脚本啦!

gnome-terminal 如果不加这个,需要先打开终端,再开软件,不然还是无法识别设备。

标签:脚本,bin,zpcican,Linux,rc,自启动,local,bash

来源: https://blog.csdn.net/liuwinner/article/details/91040565

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值