欢迎来到天天文库
浏览记录
ID:38363121
大小:56.00 KB
页数:4页
时间:2019-06-11
《debianlinux系统开机启动项管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Debianlinux系统开机启动项的管理TableofContents1.关于LINUX的启动21.1linux的关键启动脚本21.2linux启动shell脚本的一般书写规则31.3开机启动的其他方法41.关于linux的启动1.1linux的关键启动脚本Linux的第一个进程是0号进程,一般认为0号进程创建了1号进程,1号进程建了所有的kernel进程,1号进程是所有进程的祖先。1号进程又称init进程,init进程是所有进程之父。init读取/etc/inittab,以下是debian系统的inittab,init就是读取这个文件获取的第一
2、个脚本,请注意里面的粗体字,会对您理解linux的运行有一定的帮助。#/etc/inittab:init(8)configuration.#$Id:inittab,v1.912002/01/2513:35:21miquelsExp$#Thedefaultrunlevel.默认的运行等级2是多用户形式,这个数字也可以是1获其他的数字,关于运行等级,请见下文。在终端下,直接执行runlevel看到当前系统的默认运行等级。id:2:initdefault:#Boot-timesystemconfiguration/initializationscript
3、.#Thisisrunfirstexceptwhenbootinginemergency(-b)mode.下面的命令是第一个执行的,除非是在紧急模式下启动。可以看到,第一个运行的程序是/etc/init.d/rcS,也就是说rcS就是我们系统的初始化脚本。rcS是系统的初始化脚本,而在rcS文件中,直接执行了rc程序,在rc程序中,会执行当前系统默认运行等级下的所有要运行的脚本,这些脚本存放在rc?.d文件夹中(“?”是一个数字,运行等级是2的话就是rc2.d文件夹),在rc?.d文件夹中是以{K或S}{num}{name}命名的链接,这些链接至/
4、etc/init.d/文件夹下的脚本,如果是K,那么意味着向/etc/init.d/下对应name的脚本传入stop参数,如果是S开头的链接,意味着传入start参数si::sysinit:/etc/init.d/rcS…到此,和我们的开机启动关系密切的代码已经结束了,当然,不排除在用户登录之后有针对用户的开机启动项目#Whattodoinsingle-usermode.~~:S:wait:/sbin/sulogin…1.2linux启动shell脚本的一般书写规则在/etc/init.d/下的脚本大都遵循一定的规则,其在关键的一条就是要接收sta
5、rt
6、stop
7、restart参数,分别表示启动、关闭、重启。当系统启动时,rc脚本会根据/etc/rc?.d/下脚本的名称(S或K开头)传入对应的参数至/etc/init.d/下的脚本。以下是可参考的系统启动脚本和写法#!/bin/bashcase"$1"instart)echo"StartingProgram...";;在此写入启动程序的脚本,写法通一般shell脚本的写法,可以使用函数echo“ended”;;stop)echo"StoppingProgram...";;在此写入停止程序的脚本,写法通一般shell脚本的写法,可以使用函数ec
8、ho“stopped”;;restart)echo"RestartingProgram...";;在此写入重启程序的脚本,写法通一般shell脚本的写法,可以使用函数echo"Restarted";;*)echo"Usage:$0{start
9、stop
10、restart
11、status}"exit0;;esacexit0;如果您想开机启动自己的脚本,先在/etc/init.d/目录下增加上述格式的脚本,再给此脚本可执行权限,再使用update-rc.d你的脚本名称start882.注意,在2后面先是一个空格,再是一个“.”,2是您系统的默认运行等级,8
12、8是您的脚本的运行次序,是说在系统的第几个运行,您也可以在其他的数字,start是说要创建一个以S开头的链接,执行此命令,将在/etc/rc2.d/下创建“S88你的脚本名称”的一个链接,开机之后,此脚本将自动运行。如果要删除这个自动运行,只需要删除对应的链接即可。特别注意:在一些参考资料上,有写使用命令“ln–s脚本名称目标链接名称”来创建对应的链接,但经过测试,在debian系统上不能成功启动。1.3开机启动的其他方法要开机启动某个脚本,也可以将此脚本直接在/etc/rc.local命令中运行,需要注意的是这里添加的方法是在所有rc?.d目录中
13、的脚本都被运行过后才运行。这种方法是一种比较快捷的方法。甚至可以在/etc/inittable或/etc/init.d/r
此文档下载收益归作者所有