Linux系统--程序开机自启动

时间:2022-03-29 15:39:26

Linux系统下,使程序开机自动启动的方法:

 

1)将执行程序脚本的命令行写入/etc/rc.d/rc.local,Linux开机加载完所有服务,会执行这个脚本。

一般用户自己编写的脚本和命令是添加到这个文件中

 

2)程序脚本存放在/etc/init.d下

然后在/etc/rc5.d下创建一个软链接SXXX,指向程序脚本

S是指开机启动

5是因为一般进入的X windows的运行级别是5.

 

详细说明:

1)redhat的启动方式和执行次序是:

  a)加载内核;

  b)执行init程序;

  /etc/rc.d/rc.sysinit # 由init执行的第一个脚本,主要做在各个运行模式中相同的初始化工作,包括:调入keymap以及系统字体,启动swapping,设置主机名,设置NIS域名,检查(fsck)并mount文件系统,打开quota,装载声卡模块,设置系统时钟等等。

    /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式。根据其参数指定的运行模式(运行级别,在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用/etc/rc.d/rc3.d/下的脚本。

    /etc/rc.d/rc.local #相应级别服务启动之后,执行该文件。Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。

  /sbin/mingetty #等待用户登录

  c)至此,LINUX的启动结束。

 

2)init进程,它是一个由内核启动的用户级进程。

  内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。

  内核会在过去曾使用过init的几个地方查找它,它的正确位置(对Linux系统来说)是/sbin/init。如果内核找不到init,它就会试着运行/bin/sh,如果运行失败,系统的启动也会失败。

 

3)运行级就是操作系统当前正在运行的功能级别。这个级别从1到6 ,具有不同的功能。

  不同的运行级定义如下

  # 0 -停机(千万不能把initdefault设置为0)

  # 1 -单用户模式# s init s = init 1

  # 2 - 多用户,没有 NFS

  # 3 -完全多用户模式(标准的运行级)

  # 4 -没有用到

  # 5 - X11多用户图形模式(xwindow)

  # 6 -重新启动(千万不要把initdefault设置为6)

  这些级别在/etc/inittab 文件里指定。这个文件是init 程序寻找的主要文件,最先运行的服务是放在/etc/rc.d 目录下的文件。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命令连接到 /etc/rc.d/rcn.d 目录。(这里的n 就是运行级0-6)

 

4)chkconfig命令可以设置服务的各个级别的自启动


 

参照网址:

http://wenku.baidu.com/view/2eb4180016fc700abb68fc94.html