Создание стартового скрипта init.d


Чтобы избежать прямого редактирования файлов post-boot, post-mount,
но оставить возможность запускать скрипты в автозагрузке нужно сделать скрипты:

$ mkdir -p /opt/etc/init.d
$ nano /opt/etc/init.d/rc.unslung

#!/bin/sh

# Start/stop all init scripts in /opt/etc/init.d
# starting them in numerical order and
# stopping them in reverse numerical order
#
if [ $# -ne 1 ]; then
  printf "Usage: $0 {start|stop}n" >&2
  exit 1
fi

daemons=`echo $(/usr/bin/dirname $0)/S??*`
[ $1 = "stop" ] && daemons=`echo $daemons | /usr/bin/tr " " "n" | /usr/bin/sort -r`

for i in $daemons; do
  # Ignore dangling symlinks (if any).
  [ ! -f "$i" ] && continue

  # Write to syslog
  logger -t rc.unslung "$1 service $i"

  case "$i" in
  *.sh)
  # Source shell script for speed.
  (
    trap - INT QUIT TSTP
    set $1
    . $i
  )
  ;;
  *)
    # No sh extension, so fork subprocess.
    $i $1
  ;;
  esac
done

$ chmod +x /opt/etc/init.d/rc.unslung
$ echo '/opt/etc/init.d/rc.unslung start' >> /usr/local/sbin/post-mount

И перед выключением - аккуратно перемонтируем диски в режим только для чтения:

$ nano /usr/local/sbin/pre-shutdown

#!/bin/sh

/opt/etc/init.d/rc.unslung stop
sleep 10s
for i in `cat /proc/mounts | awk '/ext3/{print($1)}'` ; do
   mount -o remount,ro $i
done
swapoff -a
sleep 1s