2009年4月3日星期五

lfs下启动脚本设置参考

玩了这么长时间LFS了,主要是用来做服务器测试,今天才注意到开机自启动服务是个很轻松的功能,能省很多事,原来的几个服务不是做完系统自带的就是做BLFS时用的BOOTSCRIPT安装的,也没怎么注意是怎么实现的,今天在虚拟机里装了个HELIXSERVER了,每次自己启动也有点烦了,就想把它也弄进自启动里,也看了下BOOTSCRIPT里做好的像什么APACHE,SSH的启动脚本,也能看明白,就感觉写的时候怕不对,上网一捞.找到个精华专门说这个的.原文地址:http://www.linuxsir.org/bbs/archive/index.php/t-77710.html.

他这个贴子是针对TELNET服务来说的,原理都一样

tram(文章作者)
03-12-07, 13:32
今天就来说说lfs的rc系统定制方法.
1.首先,你要创建一个脚本,用来启动你的服务,在lfs的/etc/rc.d/init.d里面,有所有的启动脚本,其中一个名为template,这个是模板,你把它拷贝成你所需要的,比如这里:
cp template telnetd
然后再编辑telnetd文件,在里面加上它的启动命令.
比如:

#!/bin/bash
# Begin $rc_base/init.d/

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
start)
echo "Starting..."
loadproc /usr/sbin/telnetd #在这里改动
;;

stop)
echo "Stopping..."
killproc /usr/sbin/telnetd #在这里改动
;;

reload)
echo "Reloading..."
reloadproc /usr/sbin/telnetd #在这里改动
;;

restart)
$0 stop
sleep 1
$0 start
;;

status)
statusproc /usr/sbin/telnetd #在这里改动
;;

*)
echo "Usage: $0 {startstopreloadrestartstatus}"
exit 1
;;
esac

# End $rc_base/init.d/


这样就行了.
2.你需要在rcN.d目录下创建链接,链接号可以参考blfs最后的附录.

上面所说的是通用方法.我个人有一个捷径.创建telnetd文件是一样的,而到第二步可以简化一下.
在lfs-bootscripts软件包里,有一个contrib/rlv/rc文件,你把它拷贝到/etc/rc.d/init.d下,覆盖缺省的rc文件,就不用进行第二步的创建6-7个符号链接了,只需要在这个文件的前面部份加上:

# Additional user scripts, not part of the base LFS.

# Run level: 3
ADD[3]="telnetd" #在这里改动

# Run level: sysinit
ADD[7]="" #如果是对系统很重要的服务,就在这里改动

这表示在运行级三的时候运行telnetd,其他的运行级也都是一样的.

0 评论: