From 9b796d8a86098474d228eef91d8545f8ea4b3efb Mon Sep 17 00:00:00 2001 From: diego castillo salazar Date: Thu, 17 Nov 2022 05:27:04 -0500 Subject: [PATCH] subiendo reboot y shutdown --- sbin/reboot | Bin 0 -> 14392 bytes sbin/shutdown | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100755 sbin/reboot create mode 100755 sbin/shutdown diff --git a/sbin/reboot b/sbin/reboot new file mode 100755 index 0000000000000000000000000000000000000000..707a8204658a5cd1ef700d34fb20d15f8c887bf0 GIT binary patch literal 14392 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 literal 0 HcmV?d00001 diff --git a/sbin/shutdown b/sbin/shutdown new file mode 100755 index 0000000..9b6bba4 --- /dev/null +++ b/sbin/shutdown @@ -0,0 +1,73 @@ +#!/bin/sh +# shutdown - shutdown(8) lookalike for runit + +single() { + runsvchdir single +} + +abort() { + printf '%s\n' "$1" >&2 + exit 1 +} + +usage() { + abort "Usage: ${0##*/} [-fF] [-kchPr] time [warning message]" +} + +action=single + +while getopts akrhPHfFnct: opt; do + case "$opt" in + a|n|H) abort "'-$opt' is not implemented";; + t) ;; + f) touch /fastboot;; + F) touch /forcefsck;; + k) action=true;; + c) action=cancel;; + h|P) action=halt;; + r) action=reboot;; + [?]) usage;; + esac +done +shift $((OPTIND - 1)) + +[ $# -eq 0 ] && usage + +time=$1; shift +message="${*:-system is going down}" + +if [ "$action" = "cancel" ]; then + kill "$(cat /run/runit/shutdown.pid)" + if [ -e /etc/nologin ] && ! [ -s /etc/nologin ]; then + rm /etc/nologin + fi + echo "${*:-shutdown cancelled}" | wall + exit +fi + +touch /run/runit/shutdown.pid 2>/dev/null || abort "Not enough permissions to execute ${0#*/}" +echo $$ >/run/runit/shutdown.pid + +case "$time" in + now) time=0;; + +*) time=${time#+};; + *:*) abort "absolute time is not implemented";; + *) abort "invalid time";; +esac + +for break in 5 0; do + [ "$time" -gt "$break" ] || continue + [ "$break" = 0 ] && touch /etc/nologin + + printf '%s in %s minutes\n' "$message" "$time" | wall + printf 'shutdown: sleeping for %s minutes... ' "$(( time - break ))" + sleep $(( (time - break) * 60 )) + time="$break" + printf '\n' + + [ "$break" = 0 ] && rm /etc/nologin +done + +printf '%s NOW\n' "$message" | wall + +$action