Hi! I wrote a service to create and clean a swap file when boot or reboot a machine. By using "chkconfig --add mkswapfile", it's successfully added to the /etc/rcx.d. I do saw S15mkswapfile in /etc/rc3.d, and K85mkswapfile in /etc/rc6.d, and it DO run successfully when my machine booted. BUT when the machine rebooted, it did NOT run K85mkswapfile at all. I can NOT even see anything, it seems that init just skip it. Does anyone know why ? Thanks in advance. Ps. The mkswapfile script is: ------------------------- #!/bin/sh # mkswapfile This shell script takes care of starting and stopping # the mkswapfile. # # chkconfig: 2345 15 85 # description: mkswapfile is a script to create swap file for DRBL client. # # Author: Blake, Kuo-Lien Huang # License: GPL # Description: # start|stop drbl cluster mode # disk is used to install the cluster node (the same as drblcd) on local disk # # Modified by Steven Shiau <steven@xxxxxxxxxxx> to use it in DRBL for Redhat. # This file is borrowed from Knoppix (http://www.knoppix.org). # The MaxSwapSize (MB) # MaxSwapSize=512 # Source function library. . /etc/rc.d/init.d/functions # Source mkswapfile configuration. if [ ! -f /etc/sysconfig/mkswapfile ]; then exit 0 fi . /etc/sysconfig/mkswapfile newswapfile() { # Maximum swap file size MaxSwapSize=$1 # Find exist swap partitions found=0 for p in `/sbin/fdisk -l | grep "Linux swap" | cut -d" " -f1` do /sbin/swapon $p found=1 done if [ $found -eq 1 ]; then echo "Use the exist swap partition." exit; fi # Create swap files in exist partitions #TMP="/tmp/mkswapfile.$$" TMP=$(mktemp /tmp/mkswapfile.XXXXXX) total_swap_size=0 for p in `/sbin/fdisk -l | grep "^\/dev\/" | awk '{ if($2=="*" && $6!="f" && $6!="0") print $1; if($2!="*" && $5!="f" && $5!="0") print $1; }'` do d="/tmp/${p##*/}" f="$d/drbl-cluster.swap" mkdir -p $d # mount the partition, check the size, create the swap file if mount -o umask=000,rw $p $d; then ## check the partition size, use 60% for swap AVAIL=$(df -m $d | awk '/^\/dev\//{print $4}') cat <<-EOF > $TMP $AVAIL * 3 / 5 quit EOF AVAIL=`bc $TMP` if [ $AVAIL -gt $MaxSwapSize ]; then AVAIL=$MaxSwapSize; fi if [ $AVAIL -gt 60 ]; then ## create the swap file dd if=/dev/zero of="$f" bs=1000k count="$AVAIL" chmod 600 $f 2>/dev/null /sbin/mkswap -v1 "$f" && /sbin/swapon -v "$f" fi fi # check if the total_swap_size is greater than $MaxSwapSize total_swap_size=`expr $AVAIL + $total_swap_size` if [ $total_swap_size -ge $MaxSwapSize ]; then break; fi done if [ $total_swap_size -eq 0 ]; then echo "Can NOT find available partition, NO swap file will be created!" fi rm -f $TMP } rmswapfile() { for p in `/sbin/fdisk -l | grep "^\/dev\/" | awk '{ if($2=="*" && $6!="f" && $6!="0") print $1; if($2!="*" && $5!="f" && $5!="0") print $1; }'` do d="/tmp/${p##*/}" f="$d/drbl-cluster.swap" if [ -f $f ]; then /sbin/swapoff -v "$f" rm -f $f fi if [ "$(mount | grep "$d")" != "" ]; then umount $d fi done } ### case "$1" in "start") #echo "Creating swap file (Upto $maxswapsize Mb) if the harddisk is available... This may take few minitues." action $"Starting mkswapfile services: " $0 newswapfile $maxswapsize & ;; "stop") #echo "Removing swap file... This may take few minitues." action $"Stoping mkswapfile services: " $0 rmswapfile ;; "newswapfile") newswapfile $maxswapsize ;; "rmswapfile") rmswapfile ;; restart) $0 stop $0 start ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit 0 -------------------------------- -- Please AVOID distributing documents in WORD, EXCEL or POWERPOINT format. [Chinese Big5] 請避免散佈WORD, EXCEL 或是 POWERPOINT格式的檔案. See http://www.fsf.org/philosophy/no-word-attachments.html and http://www.cyut.edu.tw/~ckhung/published/997nodoc.shtml ---------------------------------- Steven Shiau E-mail: steven@xxxxxxxxxxx; steven@xxxxxxxxxxxx -- Shrike-list mailing list Shrike-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/shrike-list