alicelinux

A lightweight musl + clang/llvm + libressl + busybox distro
git clone https://codeberg.org/emmett1/alicelinux
Log | Files | Refs | README | LICENSE

rc.shutdown (1216B)


      1 #!/bin/sh
      2 
      3 echo "> Shutting down system..."
      4 
      5 if [ -x /etc/rc.shutdown.local ]; then
      6     echo "> Running local shutdown scripts..."
      7     /etc/rc.shutdown.local
      8 fi
      9 
     10 if command -v udevadm >/dev/null 2>&1; then
     11     echo "> Stopping udev..."
     12     udevadm control --exit
     13 fi
     14 
     15 echo "> Stopping all services..."
     16 sv force-stop /var/service/* 2>/dev/null
     17 
     18 sleep 1
     19 
     20 if [ -w /var/lib/random-seed ]; then
     21     echo "> Saving random seed..."
     22     dd if=/dev/urandom of=/var/lib/random-seed count=1 bs=512 2>/dev/null
     23 fi
     24 
     25 if [ -e /dev/rtc ] || [ -e /dev/rtc0 ]; then
     26 	echo "> Syncing hardware clock..."
     27 	hwclock -w -u 2>/dev/null
     28 fi
     29 
     30 echo "> Terminating processes..."
     31 kill -s TERM -1 2>/dev/null
     32 sleep 2
     33 
     34 kill -s KILL -1 2>/dev/null
     35 sleep 1
     36 
     37 echo "> Disabling swap..."
     38 swapoff -a 2>/dev/null
     39 
     40 echo "> Bringing down network..."
     41 ip link set lo down 2>/dev/null
     42 
     43 for iface in $(ip link show | grep '^[0-9]' | awk -F: '{print $2}' | tr -d ' ' | grep -v '^lo$'); do
     44     ip link set "$iface" down 2>/dev/null
     45 done
     46 
     47 echo "> Unmounting filesystems..."
     48 umount -a -r -t noproc 2>/dev/null
     49 
     50 echo "> Remounting root as read-only..."
     51 mount -o remount,ro / 2>/dev/null
     52 
     53 echo "> Syncing filesystems..."
     54 sync
     55 
     56 sleep 1
     57 
     58 echo "> Shutdown complete. Bye!"