在使用CnetOs时,经常想让一些程序在开机后自动运行,这时有两个简单的方法:
一、 使用 /etc/rc.d/rc.local,将要执行的程序放在这个脚本里
Linux开机的执行顺序如下:
1、加载内核
2、执行init程序
3、/etc/rc.d/rc.sysinit ? # 由init执行的第一个脚本
4、/etc/rc.d/rcX.d/* # 相应系统级别的运行模式, X为0-6
5、/etc/rc.d/rc.local # 相应级别服务启动之后、再执行该文件
6、/sbin/mingetty # 等待用户登录
Linux系统运行级别有7个,如下:
0 – 停机
1 – 单用户模式
2 – 多用户,没有 NFS
3 – 完全多用户模式,命令行文字界面
4 – 没有用到
5 – X11 多用户图形模式,采用xwindow
6 – 重新启动
系统的默认启动级别在/etc/inittab 文件中知道,当前的系统运行级别上使用下面命令查看:
runlevel
二、使用 chkconfig 命令
采用chkconfig 是一种比较优雅的方法,首先可以执行 chkconfig -h 查看一下这个命令的使用帮助。
使用 chkconfig --list 可以列出当前系统所有自动启动的服务器,其中的0,1,2等数字代表系统运行级别,后面的on/off代表在这个级别下是否启动。
[root@CentOS etc]# chkconfig
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpdate 0:off 1:off 2:off 3:off 4:off 5:off 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rdisc 0:off 1:off 2:off 3:off 4:off 5:off 6:off
restorecond 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
saslauthd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
要想自动启动某个服务,首先要将其加入服务列表,可以使用 chkconfig --add 加入想要启动的服务,或者用 chkconfig --del 删除不要自动启动的服务。
加入后则可以控制后面的开关on/off,来决定什么时候启动。如:
chkconfig --add ntpd # 加入 ntpd服务
chkconfig ntpd on # 设置ntpd服务在默认运行级别启动
chkconfig --level 4 ntpd off# 设置ntpd服务在运行级别4不启动