126 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			126 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #! /bin/sh
 | |
| 
 | |
| export PATH=/bin:/sbin:/usr/bin:/usr/sbin
 | |
| 
 | |
| . /etc/config
 | |
| 
 | |
| if [ -z "$cfg_tmpfs_size" ]; then
 | |
|     cfg_tmpfs_size='2097152'
 | |
| fi
 | |
| 
 | |
| if [ -z "$cfg_min_free_kbytes" ]; then
 | |
|     cfg_min_free_kbytes='8192'
 | |
| fi
 | |
| 
 | |
| sysinit()
 | |
| {
 | |
|     echo ""
 | |
| 
 | |
|     if ! [ -c /dev/null ]; then
 | |
|         mount -t devtmpfs devtmpfs /dev
 | |
|     fi
 | |
| 
 | |
|     if [ -f /.reboot ]; then
 | |
|         mount -t proc proc /proc
 | |
|         mount -o remount,rw /
 | |
|         rm /.reboot
 | |
|         mount -o remount,ro /
 | |
|         reboot
 | |
|         return 0
 | |
|     fi
 | |
| 
 | |
|     # Mount pseudo-filesystems.
 | |
|     mount -t sysfs sysfs /sys &&
 | |
|     mount -t proc proc /proc &&
 | |
|     mkdir -p /dev/shm /dev/pts &&
 | |
|     mount -t tmpfs -o size="$cfg_tmpfs_size" tmpfs /dev/shm &&
 | |
|     mount -t devpts devpts /dev/pts &&
 | |
| 
 | |
|     # Register mdev as hotplug event handler.
 | |
|     echo >/dev/mdev.seq &&
 | |
|     echo /sbin/mdev > /proc/sys/kernel/hotplug &&
 | |
| 
 | |
|     # Update ld cache, populate /dev.
 | |
|     /sbin/mdev -s &&
 | |
| 
 | |
|     # Set minimum free kbytes.
 | |
|     echo "$cfg_min_free_kbytes" > /proc/sys/vm/min_free_kbytes &&
 | |
| 
 | |
|     # Set hostname.
 | |
|     hostname "$cfg_hostname" &&
 | |
| 
 | |
|     # Loopback device.
 | |
|     ifconfig lo 127.0.0.1 netmask 255.0.0.0 up &&
 | |
| 
 | |
|     # Load modules.
 | |
|     modprobe -a $cfg_modules $cfg_modules1
 | |
| 
 | |
|     # Start services.
 | |
|     for service in $cfg_services0 $cfg_services1 $cfg_services2; do
 | |
|         . /etc/rc.d/$service
 | |
|         start
 | |
|     done
 | |
| 
 | |
|     echo ""
 | |
| }
 | |
| 
 | |
| syshalt()
 | |
| {
 | |
|     echo ""
 | |
| 
 | |
|     if [ -f /.reboot ]; then
 | |
|         return 0
 | |
|     fi
 | |
| 
 | |
|     srv=''
 | |
| 
 | |
|     for s in $cfg_services0 $cfg_services1 $cfg_services2; do
 | |
|         srv="$s $srv"
 | |
|     done
 | |
| 
 | |
|     for s in $srv; do
 | |
|         . /etc/rc.d/$s
 | |
|         stop
 | |
|     done
 | |
| 
 | |
|     umount -r /dev/pts /dev/shm /sys / /proc > /dev/null 2>&1
 | |
| 
 | |
|     echo ""
 | |
| }
 | |
| 
 | |
| service()
 | |
| {
 | |
|     . /etc/rc.d/"$1"
 | |
| 
 | |
|     case "$2" in
 | |
|         start)
 | |
|             start
 | |
|             ;;
 | |
|         stop)
 | |
|             stop
 | |
|             ;;
 | |
|         restart)
 | |
|             stop
 | |
|             sleep 4
 | |
|             start
 | |
|             ;;
 | |
|         *)
 | |
|             echo "Usage: $0 <service> [start,stop,restart]"
 | |
|             exit 1
 | |
|             ;;
 | |
|     esac
 | |
| }
 | |
| 
 | |
| 
 | |
| case "$1" in
 | |
|     sysinit)
 | |
|         sysinit
 | |
|         ;;
 | |
|     syshalt)
 | |
|         syshalt
 | |
|         ;;
 | |
|     *)
 | |
|         service "$1" "$2"
 | |
|         ;;
 | |
| esac
 |