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,装载声卡模块,设置系统时钟等等。
/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命令可以设置服务的各个级别的自启动
参照网址: