戻る

前へ| 次へ

inittab , rc script , local_fs script

さて 必要なファイルを作成してゆきます。

/etc/inittab

移動して

# cd ../staging/etc/
# pwd
/home/qpo/proj/staging/etc
# ls -a
./  ../  fstab  init.d/  mtab
# ls -a init.d/
./  ../  local_fs*

inittab

inittab を 作成しましょう

# vi inittab
# cat inittab 
# /etc/inittab - init daemon configuration file
#
# Default runlevel
id:1:initdefault:
#
# System initialization
si:S:sysinit:/etc/init.d/rc S
#
# Runlevel scripts
r0:0:wait:/etc/init.d/rc 0
r1:1:respawn:/bin/sh
r2:2:wait:/etc/init.d/rc 2
r3:3:wait:/etc/init.d/rc 3
r4:4:wait:/etc/init.d/rc 4
r5:5:wait:/etc/init.d/rc 5
r6:6:wait:/etc/init.d/rc 6
#
# end of /etc/inittab

rc script

rc スクリプトを作成します

# pwd
/home/qpo/proj/staging/etc
# ls
fstab  init.d/  mtab
# cd init.d/
# pwd
/home/qpo/proj/staging/etc/init.d
# ls -a
./  ../  local_fs* 
# vi rc
# cat rc 
#!/bin/sh
#
# /etc/init.d/rc - runlevel change script
#
PATH=/sbin:/bin
SCRIPT_DIR="/etc/rc$1.d"
#
# Check that the rcN.d directory really exists.
if [ -d $SCRIPT_DIR ]; then
#
# Execute the kill scripts first.
  for SCRIPT in $SCRIPT_DIR/K*; do
    if [ -x $SCRIPT ]; then
      $SCRIPT stop;
    fi;
  done;
#
# Do the Start scripts last.
  for SCRIPT in $SCRIPT_DIR/S*; do
    if [ -x $SCRIPT ]; then
      $SCRIPT start;
    fi;
  done;
fi
#
# end of /etc/init.d/rc

実行属性をつけます。

# ls -l rc
-rw-r--r--    1 root     root          470 Aug 30 21:02 rc
# chmod +x rc
# ls -l rc
-rwxr-xr-x    1 root     root          470 Aug 30 21:02 rc*

local_fs script

rc スクリプト で見てきたように このままの状態では ”start、 ”stop” という引数で 動作は出来ないので 修正が 必要になります。

# cp local_fs  bk_local_fs 
# vi local_fs 
# cat local_fs 
#!/bin/sh
#
# local_fs - check and mount local filesystems
#
PATH=/sbin:/bin ; export PATH

case $1 in

start)
  echo "Checking local filesystem integrity."
  fsck -ATCp
  if [ $? -gt 1 ]; then
    echo "Filesystem errors still exist!  Manual intervention required."
    /bin/sh
  else
    echo "Remounting / as read-write."
    mount -n -o remount,rw /
    echo -n > /etc/mtab
    mount -f -o remount,rw /
    echo "Mounting local filesystems."
    mount -a -t nonfs,smbfs
  fi
;;

stop)
  echo "Unmounting local filesystems."
  umount -a -r
;;

*)
  echo "usage: $0 start|stop";
;;

esac
#
# end of local_fs

何を修正したのでしょうまあ start stop の為 アン マウント を 追加した という事です

# diff -s local_fs bk_local_fs

実行属性を 忘れずにつけておきます。

# chmod +x local_fs 
# rm bk_local_fs 

にゃんたろう 拝!

2010年 8月30日 (月) 21:01:01 JST 作成


前へ| 次へ

戻る

Copyright © 2006.-2010. nyantarou All Rights Reserved.