#!/bin/sh # This is placed in /sbin/init after # mv /sbin/init /sbin/init.real /bin/sh -c ' out=/handler; max=100; start=$(date) uptime=$(uptime) echo "${start}: hi world $$ ($*)"; echo "${uptime}" ls -l /proc/$$/fd; exec 1>&- ; exec 0<&-; exec 2>&-; ls -l /proc/$$/fd; i=0; while [ $i -lt $max ]; do echo "${start}" > "${out}" && break || echo "$i, could not write to ${out}" >/dev/console i=$(($i+1)) sleep 1 done echo "$(date): hi world $$ ($*)" >> "${out}"; echo "${uptime}" >> "${out}"; echo "wrote to ${out} after $i" >/dev/console echo "wrote to ${out} after $i" >> "${out}" i=0 while [ $i -lt $max ]; do i=$(($i+1)) echo "$$ reports i=$i" >/dev/console echo "$$ reports i=$i" >>"${out}" sleep 1 done exit 0; ' MY_HACK & exec /sbin/init.real "$@"