添加一个独立的硬盘,
[root@localhost ~]# fdisk /dev/hda
Command (m for help): p
Disk /dev/hda: 21.4 GB, 21474836480 bytes
15 heads, 63 sectors/track, 44384 cylinders
Units = cylinders of 945 * 512 = 483840 bytes
Device Boot Start End Blocks Id System
/dev/hda1 1 42 19813+ 83 Linux
/dev/hda2 43 1101 500377+ 83 Linux
[root@localhost ~]# mkdir /mnt/boot
[root@localhost ~]# mkdir /mnt/sysroot
[root@localhost ~]# mount /dev/hda1 /mnt/boot
[root@localhost ~]# mount /dev/hda2 /mnt/sysroot
[root@localhost ~]# cp /boot/vmlinuz-2.6.18-308.el5 /mnt/boot/vmlinuz #复制内核#
[root@localhost ~]# mkdir test
[root@localhost ~]# cd test
[root@localhost test]# zcat /boot/initrd-2.6.18-308.el5.img | cpio -id #展开并归档#
[root@localhost test]# vim init
mkrootdev -t ext3 -o defaults,ro /dev/hda2 #修改为根系统挂载设备/dev/hda2#
[root@localhost test]# find . | cpio -H newc --quiet -o | gzip -9 > /mnt/boot/initrd.gz #制作initrd文件#
[root@localhost test]# grub-install --root-directory=/mnt /dev/hda #安装grub#
[root@localhost test]# vim /mnt/boot/grub/grub.conf #编辑grub.conf#
default=0
timeout=3
title MageEdu Linux(2.6.18)
root (hd0,0)
kernel /vmlinuz ro root=/dev/hda2 quiet
initrd /initrd.gz
[root@localhost sysroot]# mkdir etc/rc.d/init.d bin sbin proc sys dev lib root mnt media var/{log,run,lock/subsys,tmp} usr/{bin,sbin,local} tmp home opt boot -pv
#在根文件系统下创建所需要的目录#
[root@localhost sysroot]# vim etc/inittab #创建配置文件#
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l3:3:wait:/etc/rc.d/rc 3
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty1
2:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty2
[root@localhost sysroot]# vim etc/rc.d/rc.sysinit #创建rc.sysinit脚本#
#!/bin/bash
#
echo -e "\tWelcome to \033[31mMagedu Team\033[0m Linux."
/bin/bash
[root@localhost sysroot]# chmod +x etc/rc.d/rc.sysinit
移植可执行程序脚本:
[root@localhost ~]# vim bincp.sh
#!/bin/bash
#
DEST=/mnt/sysroot
libcp() {
LIBPATH=${1%/*}
[ ! -d $DEST$LIBPATH ] && mkdir -p $DEST$LIBPATH
[ ! -e $DEST${1} ] && cp $1 $DEST$LIBPATH && echo echo "copy lib $1 finished."
}
bincp() {
CMDPATH=${1%/*}
[ ! -d $DEST$CMDPATH ] && mkdir -p $DEST$CMDPATH
[ ! -e $DEST${1} ] && cp $1 $DEST$CMDPATH
for LIB in `ldd $1 | grep -o "/.*lib\(64\)\{0,1\}/[^[:space:]]\{1,\}"`; do
libcp $LIB
done
}
read -p "Your command: " CMD
until [ $CMD == 'q' ]; do
! which $CMD && echo "Wrong command" && read -p "Input againe" CMD && continue
COMMAND=`which $CMD | grep -v "^alias" | grep -o "[^[:space:]]\{1,\}"`
bincp $COMMAND
echo "copy $COMMAND finished."
read -p "Continue: " CMD
done
[root@localhost ~]# chmod +x bincp.sh
[root@localhost ~]# ./bincp.sh #移植命令#
Your command: init
/sbin/init
copy /sbin/init finished.
Continue: badh
which: no badh in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
Wrong command
Input againe:bash
/bin/bash
copy /bin/bash finished.
Continue: ls
/bin/ls
copy /bin/ls finished.
Your command: touch
/bin/touch
copy /bin/touch finished.
Continue: mkdir
/bin/mkdir
copy /bin/mkdir finished.
Continue: rm
/bin/rm
copy /bin/rm finished.
Continue: mv
/bin/mv
copy /bin/mv finished.
Continue: cp
/bin/cp
copy /bin/cp finished.
Continue: cat
/bin/cat
copy /bin/cat finished.
Continue: mount
/bin/mount
copy /bin/mount finished.
Continue: umount
/bin/umount
copy /bin/umount finished.
Continue: vi
/bin/vi
copy /bin/vi finished.
Continue: vim
/usr/bin/vim
copy /usr/bin/vim finished.
Continue: chmod
/bin/chmod
copy /bin/chmod finished.
Continue: chown
/bin/chown
copy /bin/chown finished.
Continue: ping
/bin/ping
copy /bin/ping finished.
Continue: ifconfig
/sbin/ifconfig
copy /sbin/ifconfig finished.
Continue: insmod
/sbin/insmod
copy /sbin/insmod finished.
Continue: modprobe
/sbin/modprobe
copy /sbin/modprobe finished.
Continue: rmmod
/sbin/rmmod
copy /sbin/rmmod finished.
Continue: route
/sbin/route
copy /sbin/route finished.
Continue: halt
/sbin/halt
copy /sbin/halt finished.
Continue: reboot
/sbin/reboot
copy /sbin/reboot finished.
Continue: shutdown
/sbin/shutdown
copy /sbin/shutdown finished.
Continue: hostname
/bin/hostname
copy /bin/hostname finished.
Continue: q
[root@localhost ~]# sync #同步到硬盘中#
[root@localhost ~]# sync
[root@localhost ~]# sync
[root@localhost ~]#
#进入测试小系统#
bash-3.2#mount -n -o remount,rw / #将根目录重新挂载为可读写#
#实现关机、重启功能#
[root@localhost sysroot]# vim etc/rc.d/init.d/halt
#!/bin/bash
#
case $0 in
*reboot)
COMMAND='/sbin/reboot' ;;
*halt)
COMMAND='/sbin/halt -p' ;;
*)
echo "Only call this script by *reboot OR *halt;"
;;
esac
case $1 in
start)
;;
stop)
;;
*)
echo "Usage:`basename $0` {start|stop}"
;;
esac
exec $COMMAND
[root@localhost sysroot]# chmod +x etc/rc.d/init.d/halt
[root@localhost sysroot]# cd etc/rc.d/
[root@localhost rc.d]# ls init.d/
functions halt network tserver
[root@localhost rc.d]# mkdir rc0.d rc6.d
[root@localhost rc.d]# cd rc0.d/
[root@localhost rc0.d]# ln -sv ../init.d/halt S99halt
[root@localhost rc.d]# cd rc6.d/
[root@localhost rc6.d]# ln -sv ../init.d/halt S99reboot
[root@localhost rc.d]# vim rc
#!/bin/bash
#
RUNLEVEL=$1
for I in /etc/rc.d/rc$RUNLEVEL.d/K*; do
$I stop
done
for I in /etc/rc.d/rc$RUNLEVEL.d/S*; do
$I start
done
[root@localhost rc.d]# chmod +x rc
[root@localhost sysroot]# vim etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l6:6:wait:/etc/rc.d/rc 6
#定义级别3,并实现启动服务功能#
[root@localhost sysroot]# vim etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l3:3:wait:/etc/rc.d/rc 3
l6:6:wait:/etc/rc.d/rc 6
[root@localhost sysroot]# vim etc/rc.d/init.d/tserver
#!/bin/bash
#
#chkconfig: 35 66 33
#description: test service script
#
prog=`basename $0`
lockfile=/var/lock/subsys/$prog
start() {
echo "Starting $prog...."
touch $lockfile
}
stop() {
echo "Stooping $prog..."
rm -f $lockfile
}
status() {
if [ -f $lockfile ]; then
echo "Running..."
else
echo "Stopped..."
fi
}
usage() {
echo "Usage: $prog {start|stop|status|restart}"
}
case $1 in
start)
start;;
stop)
stop;;
restart)
stop
start
;;
status)
status
;;
*)
usage
exit 1
;;
esac
[root@localhost sysroot]# chmod +x etc/rc.d/init.d/tserver
[root@localhost sysroot]# cd etc/rc.d/rc3.d/
[root@localhost rc3.d]# ln -sv ../init.d/tserver S66tserver
[root@localhost rc.d]# cd rc0.d/
[root@localhost rc0.d]# ln -sv ../init.d/tserver K33server
[root@localhost rc0.d]# cd ../rc6.d/
[root@localhost rc6.d]# ln -sv ../init.d/tserver K33tserver
[root@localhost sysroot]# vim etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l3:3:wait:/etc/rc.d/rc 3
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/mingetty --loginprog=/bin/bash tty1
2:2345:respawn:/sbin/mingetty --loginprog=/bin/bash tty2
[root@localhost sysroot]# vim etc/rc.d/rc.sysinit #修改rc.sysinit脚本,删掉/bin/bash#
#!/bin/bash
#
echo -e "\tWelcome to \033[31mMagedu Team\033[0m Linux."
[root@localhost ~]# ./bincp.sh
Your command: mingetty
/sbin/mingetty
copy /sbin/mingetty finished.
[root@localhost ~]# ./bincp.sh
Your command: basename
/bin/basename
copy /bin/basename finished.
[root@localhost bin]# ln -sv bash sh
#让根文件系统,在sysinit脚本中完成以读写方式重新挂载;并且能够使用终端#
[root@localhost sysroot]# vim etc/fstab
/dev/hda2 / ext3 defaults 0 0
/dev/hda1 /boot ext3 defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
[root@localhost sysroot]# mkdir etc/sysconfig/
[root@localhost sysroot]# vim etc/sysconfig/network #设定主机名#
HOSTNAME=minilinux.magedu.com
[root@localhost sysroot]# vim etc/rc.d/rc.sysinit
#!/bin/bash
#
echo -e "\tWelcome to \033[31mMagedu Team\033[0m Linux."
echo "Remount rootfs..."
mount -n -o remount,rw /
echo "Set the hostname..."
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
[ -z $HOSTNAME -o "$HOSTNAME" == '(none)' ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
[root@localhost sysroot]# vim etc/inittab #使用agetty替换mingetty,系统登录不需要用户名#
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l3:3:wait:/etc/rc.d/rc 3
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty1
2:2345:respawn:/sbin/agetty -n -l /bin/bash 38400 tty2
[root@localhost ~]# ./bincopy.sh
Your command: agetty
/sbin/agetty
copy /sbin/agetty finished.
Continue: q
[root@localhost sysroot]# chroot /mnt/sysroot/ #在宿主机内切换到测试系统中进行测试脚本#
bash-3.2# /etc/rc.d/rc.sysinit
Welcome to Magedu Team Linux.
Remount rootfs...
Set the hostname...
bash-3.2# exit
exit
#编译一个函数,使测试系统在开启或关闭某些功能时显示绿色OK或红色FAILED#
[root@localhost sysroot]# vim etc/rc.d/init.d/functions
SCREEN=`stty -F /dev/console size 2>/dev/null`
COLUMNS=${SCREEN#* }
[ -z $COLUMNS ] && COLUMNS=80
SPA_COL=$[$COLUMNS-14]
RED='\033[31m'
GREEN='\033[32m'
YELLOW='\033[33m'
GREEN='\033[32m'
YELLOW='\033[33m'
BLUE='\033[34m'
NORMAL='\033[0m'
success() {
string=$1
RT_SPA=$[$SPA_COL-${#string}] #${#string}显示$1字符串长度#
echo -n "$string"
for I in `seq 1 $RT_SPA`; do
echo -n " "
done
echo -e "[ ${GREEN}OK${NORMAL} ]"
}
failure() {
string=$1
RT_SPA=$[$SPA_COL-${#string}]
echo -n "$string"
for I in `seq 1 $RT_SPA`; do
echo -n " "
done
echo -e "[ ${RED}FAILED${NORMAL} ]"
}
[root@localhost sysroot]# vim etc/rc.d/init.d/tserver
#!/bin/bash
#
#chkconfig: 35 66 33
#description: test service script
#
. /etc/rc.d/init.d/functions
prog=tserver
lockfile=/var/lock/subsys/$prog
start() {
touch $lockfile
[ $? -eq 0 ] && success "Starting $prog" || failure "Starting $prog"
}
stop() {
rm -f $lockfile
[ $? -eq 0 ] && success "Stopping $prog" || failure "Stopping $prog"
}
status() {
if [ -f $lockfile ]; then
echo "Running..."
else
echo "Stopped..."
fi
}
usage() {
echo "Usage: $prog {start|stop|status|restart}"
}
case $1 in
start)
start;;
stop)
stop;;
restart)
stop
start
;;
status)
status
;;
*)
usage
exit 1
;;
esac
#实现配置IP地址功能#
[root@localhost sysroot]# mkdir lib/modules/
[root@localhost sysroot]# modinfo pcnet32
filename: /lib/modules/2.6.18-308.el5/kernel/drivers/net/pcnet32.ko #pcnet32模块存放目录#
license: GPL
description: Driver for PCnet32 and PCnetPCI based ethercards
author: Thomas Bogendoerfer
srcversion: F81443556AAE169CBF80F55
alias: pci:v00001023d00002000sv*sd*bc02sc00i*
alias: pci:v00001022d00002000sv*sd*bc*sc*i*
alias: pci:v00001022d00002001sv*sd*bc*sc*i*
depends: mii #pcnet32模块依赖库#
......
[root@localhost sysroot]# cp /lib/modules/2.6.18-308.el5/kernel/drivers/net/pcnet32.ko /mnt/sysroot/lib/modules/
[root@localhost sysroot]# modinfo mii
filename: /lib/modules/2.6.18-308.el5/kernel/drivers/net/mii.ko
license: GPL
description: MII hardware support library
author: Jeff Garzik
srcversion: 16DCEDEE4B5629C222C352D
depends:
......
[root@localhost sysroot]# cp /lib/modules/2.6.18-308.el5/kernel/drivers/net/mii.ko /mnt/sysroot/lib/modules/
[root@localhost sysroot]# vim etc/rc.d/rc.sysinit
#!/bin/bash
#
echo -e "\tWelcome to \033[31mMagedu Team\033[0m Linux."
echo "Remount rootfs..."
mount -n -o remount,rw /
echo "Set the hostname..."
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
[ -z $HOSTNAME -o "$HOSTNAME" == '(none)' ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
echo "Initializing network device..."
/sbin/insmod /lib/modules/mii.ko #装载mii.ko模块#
/sbin/insmod /lib/modules/pcnet32.ko #装载pcnet32.ko模块#
[root@localhost sysroot]# mkdir -pv etc/sysconfig/network-scripts/
[root@localhost sysroot]# vim etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.101.155
NETMASK=255.255.255.0
GATEWAY=192.168.101.1
ONBOOT=yes
[root@localhost sysroot]# vim etc/rc.d/init.d/network #实现自动启动ifcfg-eth0 脚本#
#!/bin/bash
#chkconfig: 35 09 90
#description: network service
#
prog=network
. /etc/rc.d/init.d/functions #读取functions 函数#
CONF=/etc/sysconfig/network-scripts/ifcfg-eth0
. $CONF
NETMASK=24
start() {
ifconfig eth0 $IPADDR/$NETMASK up
[ -z $GATEWAY ] && route add default gw $GATEWAY
}
stop() {
ifconfig eth0 down
}
status() {
ifconfig eth0
}
usage() {
echo "$prog: {start|stop|restart|status}"
}
case $1 in
start)
start
success "Config network eth0"
;;
stop)
stop
success "Stop network card eth0"
;;
restart)
stop
start
success "Restart network card eth0"
;;
status)
status
;;
*)
usage
exit 1
;;
esac
[root@localhost sysroot]# chmod +x etc/rc.d/init.d/network
[root@localhost sysroot]# cd etc/rc.d/rc0.d/
[root@localhost rc0.d]# ln -sv ../init.d/network K90network
[root@localhost rc0.d]# cd ../rc6.d/
[root@localhost rc6.d]# ln -sv ../init.d/network K90network
[root@localhost rc6.d]# cd ../rc3.d/
[root@localhost rc3.d]# ln -sv ../init.d/network S09network
#显示终端提示信息#
/etc/issue 文件的内容
[root@localhost ~]# cp /etc/issue /mnt/sysroot/etc/
[root@localhost ~]# vim /mnt/sysroot/etc/issue
MagEdu Linux
Kernel \r on an \m
#rc.sysinit:挂载/etc/fstab中定义的其他文件系统#
[root@localhost ~]# cd /mnt/sysroot/
[root@localhost sysroot]# vim etc/rc.d/rc.sysinit
#!/bin/bash
#
. /etc/rc.d/init.d/functions
echo -e "\tWelcome to \033[31mMagedu Team\033[0m Linux."
echo "Remount rootfs..."
mount -n -o remount,rw /
[ $? -eq 0 ] && success "Remount rootfs" || failure "Remount rootfs"
mount -a #挂载所有文件#
[ $? -eq 0 ] && success "Mount others filesystem" || failure "Mount others filesystem"
#Set the hostname...
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
[ -z $HOSTNAME -o "$HOSTNAME" == '(none)' ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
[ $? -eq 0 ] && success "Set the hostname" || failure "Set the hostname"
#Initializing network device...
/sbin/insmod /lib/modules/mii.ko
/sbin/insmod /lib/modules/pcnet32.ko
[ $? -eq 0 ] && success "Set the hostname" || failure "Set the hostname"
#设定内核参数#
修改/etc/sysctl.conf
sysctl -p #sysctl 脚本生效#
[root@localhost sysroot]# /root/bincp.sh
Your command: sysctl
/sbin/sysctl
echo copy lib /lib/libproc-3.2.7.so finished.
copy /sbin/sysctl finished.
Continue: q
[root@localhost sysroot]# vim etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@localhost sysroot]# vim etc/rc.d/rc.sysinit
!/bin/bash
#
. /etc/rc.d/init.d/functions
echo -e "\tWelcome to \033[31mMagedu Team\033[0m Linux."
echo "Remount rootfs..."
mount -n -o remount,rw /
[ $? -eq 0 ] && success "Remount rootfs" || failure "Remount rootfs"
mount -a
[ $? -eq 0 ] && success "Mount others filesystem" || failure "Mount others filesystem"
#Set the hostname...
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
[ -z $HOSTNAME -o "$HOSTNAME" == '(none)' ] && HOSTNAME=localhost
/bin/hostname $HOSTNAME
[ $? -eq 0 ] && success "Set the hostname" || failure "Set the hostname"
#Initializing network device...
/sbin/insmod /lib/modules/mii.ko
/sbin/insmod /lib/modules/pcnet32.ko
[ $? -eq 0 ] && success "Initializing network device" || failure "Initializing network device"
ifconfig lo 127.0.0.1/8
[ $? -eq 0 ] && success "Activating loopback network device" || failure "Activating loopback device"
sysctl -p &> /dev/null #sysctl 生效#
[ $? -eq 0 ] && success "Set kernel parameter" || failure "Set kernel parameter"
#支持用户账号#
[root@localhost ~]# cp /lib/libnss_files* /mnt/sysroot/lib/ -d
[root@localhost ~]# cp -d /usr/lib/libnss_files.so /mnt/sysroot/usr/lib/
[root@localhost ~]# cp -d /usr/lib/libnss3.so /usr/lib/libnssckbi.so /usr/lib/libnssutil3.so /mnt/sysroot/usr/lib/
[root@localhost ~]# cp /etc/nsswitch.conf /mnt/sysroot/etc/
[root@localhost ~]# vim /mnt/sysroot/etc/nsswitch.conf
passwd: files
shadow: files
group: files
hosts: files dns
[root@localhost ~]# grep -E "^(root|hadoop)\>" /etc/passwd > /mnt/sysroot/etc/passwd #创建root和hadoop两个用户#
[root@localhost ~]# grep -E "^(root|hadoop)\>" /etc/shadow > /mnt/sysroot/etc/shadow #创建root和hadoop两个用户密码#
[root@localhost ~]# grep -E "^(root|hadoop)\>" /etc/group > /mnt/sysroot/etc/group #创建root和hadoop两个用户的组#
[root@localhost ~]# ./bincp.sh
Your command: mingetty
/sbin/mingetty
copy /sbin/mingetty finished.
Continue: useradd
/usr/sbin/useradd
echo copy lib /lib/libaudit.so.0 finished.
copy /usr/sbin/useradd finished.
Continue: passwd
/usr/bin/passwd
echo copy lib /usr/lib/libuser.so.1 finished.
echo copy lib /lib/libgobject-2.0.so.0 finished.
echo copy lib /lib/libgmodule-2.0.so.0 finished.
echo copy lib /lib/libglib-2.0.so.0 finished.
echo copy lib /usr/lib/libpopt.so.0 finished.
echo copy lib /lib/libpam_misc.so.0 finished.
echo copy lib /lib/libpam.so.0 finished.
copy /usr/bin/passwd finished.
Continue: userdel
/usr/sbin/userdel
copy /usr/sbin/userdel finished.
Continue: usermod
/usr/sbin/usermod
copy /usr/sbin/usermod finished.
Continue: groupadd
/usr/sbin/groupadd
copy /usr/sbin/groupadd finished.
Continue: q
[root@localhost ~]# cd /mnt/sysroot/
[root@localhost sysroot]# vim etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l3:3:wait:/etc/rc.d/rc 3
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
#编译login程序# 需要用到PAM,暂搁置
。。。。。
#编辑PS1,定义命令提示符前提示信息#
[root@localhost sysroot]# cd root/
[root@localhost root]# vim .bash_profile
PS1=‘[\u@\h \W]\$’
export PS1
#设定单用户模式#
[root@localhost sysroot]# vim etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l3:3:wait:/etc/rc.d/rc 3
l6:6:wait:/etc/rc.d/rc 6
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
[root@localhost sysroot]# cd etc/
[root@localhost etc]# cd rc.d/
[root@localhost rc.d]# mkdir rc1.d
[root@localhost rc.d]# cd rc1.d/
[root@localhost rc1.d]# ln -sv ../init.d/network K90network
创建指向“../init.d/network”的符号链接“K90network”
[root@localhost rc1.d]# ln -sv ../init.d/tserver K33tserver
创建指向“../init.d/tserver”的符号链接“K33tserver”
[root@localhost rc1.d]# ll
总计 2
lrwxrwxrwx 1 root root 17 11-13 15:16 K33tserver -> ../init.d/tserver
lrwxrwxrwx 1 root root 17 11-13 15:15 K90network -> ../init.d/network
[root@localhost etc]# vim rc.d/init.d/single
#!/bin/bash
#
#chkconfig:
#description:
#
case $1 in
start)
;;
*)
echo "Usage: single start"
;;
esac
exec /sbin/init S
[root@localhost etc]# chmod +x rc.d/init.d/single
[root@localhost rc1.d]# ln -sv ../init.d/single S98single
创建指向“../init.d/single”的符号链接“S98single”
[root@localhost rc1.d]# ll
总计 3
lrwxrwxrwx 1 root root 17 11-13 15:16 K33tserver -> ../init.d/tserver
lrwxrwxrwx 1 root root 17 11-13 15:15 K90network -> ../init.d/network
lrwxrwxrwx 1 root root 16 11-13 15:23 S98single -> ../init.d/single
阅读(982) | 评论(0) | 转发(0) |