1. init进程
非内核进程中第一个被启动运行的,因此它的进程编号PID的值总是1。init读它的配置文件/etc/inittab,决定需要启动的运行级别(Runlevel,分别由0到6的整数表示)。
对每一个运行级别来说,在/etc/rc.d子目录中都有一个对应的下级目录。这些运行级别的下级子目录的命名方法是rcX.d
在各个运行级别的子目录中,都建立有到/etc/rc.d/init.d子目录中命令脚本程序的符号链接。如果命令脚本程序是用来启动一个服务的,其符号链接的名字就以字母S打头;如果命令脚本程序是用来关闭一个服务的,其符号链接的名字就以字母K打头。
命令脚本程序的执行顺序:字母S或者K的后面紧跟着一个两位数字,数值小的在数值大的前面执行。
2. 修改启动进程
●如果所做的修改只在引导开机的时候起作用,并且改动不大的话,可以考虑简单地编辑一下/etc/rc.d/rc.local脚本。这个命令脚本程序是在引导过程的最后一步被执行的。
●如果所做的修改比较细致,或者还要求关闭进程使之明确地停止运行,则需要在/etc/rc.d/init.d子目录中添加一个命令脚本程序。这个命令脚本程序必须可以接受Start和Stop参数并完成相应的操作。
如何把一个shell脚本添加为系统服务,并跟随系统启动:
可以看到“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本。系统服务的启动就是通过“/etc/rc.d/init.d”中的脚本文件实现的。我们也可以写一个自己的脚本放在这里。
脚本文件的内容也很简单,类似于这个样子(例如起个名字叫做“hahad”):
. /etc/init.d/hahad
start() {
echo "Starting my process "
cd /opt
./haha.sh
}
stop() {
killall haha.sh
echo "Stoped"
}
写了脚本文件之后事情还没有完,继续完成以下几个步骤:
chmod +x hahad #增加执行权限
chkconfig --add hahad #把hahad添加到系统服务列表
chkconfig hahad on #设定hahad的开关(on/off)
chkconfig --list hahad #就可以看到已经注册了hahad的服务
3. 注册系统服务
操作系统自带的服务,如ssh,ftp等等,开机都是自动启动的,我们也可以通过这种方式让自己开发的程序提高“身价”。
比如我想把某个已经安装了的服务添加为系统服务,可以执行以下命令:
chkconfig --add 服务名称
chkconfig -leve 启动级别 服务名 on
(说明,3级别代表在命令行模式启动,5级别代表在图形界面启动,on表示开启)
chkconfig -leve 启动级别 服务名 off
(说明,off表示关闭自启动)
例如:chkconfig -level 3 mysql on (说明:让mysql服务在命令行模式,随系统启动)
如果要查看哪些服务被添加为系统服务可以使用命令 :
ntsysv 或者chkconfig --list
如果要查看哪些程序被添加为自启动,可以使用命令 :
cat /etc/rc.local
也可以使用 chkconfig --add 服务名称 来删除系统服务
如果要查看哪些服务被添加为系统服务可以使用命令 :
ntsysv 或者chkconfig --list
如果要查看哪些程序被添加为自启动,可以使用命令 :
cat /etc/rc.local