debian linux系统开机启动项管理
Debian linux系统开机启动项的管理
Table of Contents
1. 关于linux 的启动    2
1.1 linux的关键启动脚本    2
1.2 linux启动shell脚本的一般书写规则    3
1.3 开机启动的其他方法    4
1. 关于linux 的启动
1.1 linux的关键启动脚本
怎样关闭开机启动项
Linux的第一个进程是0号进程,一般认为0号进程创建了1号进程,1号进程建了所有的kernel进程,1号进程是所有进程的祖先。1号进程又称init进程,init进程是所有进程之父。
init读取/etc/inittab,以下是debian系统的inittabinit就是读取这个文件获取的第一个脚本,请注意里面的粗体字,会对您理解linux的运行有一定的帮助。
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
# The default runlevel. 默认的运行等级 2 是多用户形式,这个数字也可以是1获其他的数字,关于运行等级,请见下文。在终端下,直接执行runlevel看到当前系统的默认运行等级。
id:2:initdefault:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode. 下面的命令是第一个执行的,除非是在紧急模式下启动。
可以看到,第一个运行的程序是/etc/init.d/rcS,也就是说rcS就是我们系统的初始化脚本。rcS是系统的初始化脚本,而在rcS文件中,直接执行了rc程序,在rc程序中,会执行当前系统默认运行等级下的所有要运行的脚本,这些脚本存放在rc?.d文件夹中(“?”是一个数字,运行等级是2的话就是rc2.d文件
夹),在rc?.d文件夹中是以{KS}{num}{name}命名的链接,这些链接至/etc/init.d/文件夹下的脚本,如果是K,那么意味着向/etc/init.d/下对应name的脚本传入stop参数,如果是S开头的链接,意味着传入start参数
si::sysinit:/etc/init.d/rcS
到此,和我们的开机启动关系密切的代码已经结束了,当然,不排除在用户登录之后有针对用户的开机启动项目
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
1.2 linux启动shell脚本的一般书写规则
/etc/init.d/下的脚本大都遵循一定的规则,其在关键的一条就是要接收start|stop|restart参数,分别表示启动、关闭、重启。当系统启动时,rc脚本会根据/etc/rc?.d/下脚本的名称(SK开头)传入对应的参数至/etc/init.d/下的脚本。
以下是可参考的系统启动脚本和写法
#!/bin/bash
case "$1" in
        start)
                echo ""
              ;;在此写入启动程序的脚本,写法通一般shell脚本的写法,可以使用函数
                echo “ended”
                ;;
        stop)
                echo ""
                ;;在此写入停止程序的脚本,写法通一般shell脚本的写法,可以使用函数
                echo “stopped”
                ;;
        restart)
                echo ""
                ;;在此写入重启程序的脚本,写法通一般shell脚本的写法,可以使用函数
                echo "Restarted"
                ;;
        *)
                echo "Usage: $0 {start|stop|restart|status}"
                exit 0
                ;;
esac
exit 0;
如果您想开机启动自己的脚本,先在/etc/init.d/目录下增加上述格式的脚本,再给此脚本可执行权限,再使用update-rc.d 你的脚本名称 start 88 2 . 注意,在2后面先是一个空格,再是一个“.”,2是您系统的默认运行等级,88是您的脚本的运行次序,是说在系统的第几个运行,您也可以在其他的数字,start是说要创建一个以S开头的链接,执行此命令,将在/etc/rc2.d/下创建“S88你的脚本名称”的一个链接,开机之后,此脚本将自动运行。如果要删除这个自动运行,只需要删除对应的链接即可。
特别注意:在一些参考资料上,有写使用命令“ln –s 脚本名称 目标链接名称”来创建对应的链接,但经过测试,在debian系统上不能成功启动。
1.3 开机启动的其他方法
要开机启动某个脚本,也可以将此脚本直接在/etc/rc.local命令中运行,需要注意的是这里添加的方法是在所有rc?.d目录中的脚本都被运行过后才运行。这种方法是一种比较快捷的方法。
甚至可以在/etc/inittable/etc/init.d/rc文件中直接加入,但这种方法是不被提倡的。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。