Linux(Debian)编写开机自启动脚本

  • Post author:
  • Post category:linux


前言

开发板烧写了Debian系统镜像,在编写QT程序之前,就想着如何让程序开机自动运行,或者开机加载一些必要的驱动,和一些初始化工作。

查阅了一些文章,最终试验可行,在此做个记录。

步骤如下:

一、先编写一个脚本

新建一个空文件 mystart ,内容如下:

#!/bin/sh


#wifi
startPath1=/opt/8723du.ko

if [ ! -f ${startPath1} ];then
	echo ${startPath1}
	echo "File does not exist !"
else
	sudo insmod ${startPath1}
	echo "Wifi has been loaded !"
fi


#usblp
startPath2=/opt/usblp.ko

if [ ! -f ${startPath2} ];then
	echo ${startPath2}
	echo "File does not exist !"
else
	sudo insmod ${startPath2}
	echo "Usblp has been loaded !"
fi


#chmod lp0
startPath3=/dev/usb

if [ ! -d ${startPath3} ];then
	echo ${startPath3}
	echo "Directory does not exist !"
else
	sudo chmod 777 ${startPath3}/lp0
	echo "Permission has been released !"
fi

脚本的大概内容是:

1、如果文件存在,就加载WIFI驱动。

2、如果文件存在,就加载USB打印驱动。

3、如果路径存在,就设置打印机挂载文件的权限。

二、将脚本放到 /etc/init.d/ 目录下,并设置可执行权限

三、添加链接

sudo ln -s /etc/init.d/mystart /etc/rc2.d/S99mystart

这样,Linux启动的时候就可以自动运行我们编写的脚本文件了。

完结,撒花~~~

写在后面

Linux启动的时候,会运行一个叫做 init 的程序,然后由它来启动后面的任务,包括用户环境,网络,模块驱动,必要的程序等等。

脚本文件存放于 /etc/init.d/ 目录下,但这些脚本的运行是有先后顺序的,如何确定呢?


1、首先,脚本的链接文件存放于 /etc/rcn.d 目录下,n 分为 0~6 ,其中:


目录名称

说明
rc0.d 机器关闭的时候运行
rc1.d 单用户模式,类似于windows的安全模式
rc2.d 多用户模式,但是没有NFS支持
rc3.d 完整的多用户模式,是标准的运行级
rc4.d 一般不用
rc5.d 进入到X Windows了执行
rc6.d 机器重启的时候运行


2、在 rcn.d 目录中,文件的命名确定执行顺序。

比如,文件

S99mystart



S

代表的意思是 start ,

99

代表的就是启动顺序。

完结,撒花~~~



版权声明:本文为ssismm原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。