初衷:
我在centos上面搭建了一个dhcp server,由于client发来的dhcp request是加了tag的,为了使dhcp server能够正常response分给client一个地址池的ip。
dhcp eth口是eth0
实现:
在/etc/rc.local中添加
vconfig add eth0 1002
ifconfig eth0.1002 90.0.0.1 up
说明:
linux启动时,先加载内核,然后加载inittab文件,inittab文件中有个条目si::sysinit:/etc/rc.d/rc.sysinit指定了下一个要加载的文件rc.sysinit,这个文件加载完之后,加载/etc/rc.d/rc.RUNLEVEL.d目录中的启动脚本,最后加载/etc/rc.d/rc.local文件。
在rc.RUNLEVEL.d文件夹里,所存的都是软链接,链接到 /etc/rc.d/init.d中的脚本文件,而/etc/rc.d/init.d文件夹和/etc/init.d文件夹是一样的,/etc/init.d其实是软链接到/etc/rc.d/init.d文件夹中。
假设你有一个脚本,你需要它开机启动,有2个方法,
第一,就是把它注册为系统服务,也就是把它放到/etc/init.d目录下,并且在脚本中,加一行# chkconfig: 345 85 35,然后就可以用chkconfig命令让其开机启动。因为在/etc/init.d目录下,所以也可以用service命令控制该脚本。
第二,就是在/etc/rc.d/rc.local文件中,直接把该脚本的路径写进去,在开机加载rc.local文件的时候,自然会启动这个脚本。这个脚本就不能用chkconfig和service命令控制。