1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #!/bin/sh -e
- openrc_live() {
- if [ ! -f /run/openrc/softlevel ]; then
- echo >&2 " Skipped: Current root is not booted."
- exit 0
- fi
- }
- reexec_init() {
- local init="$(pacman -Qsq ^init$)"
- if [ $init = openrc-init ]; then
- /usr/bin/openrc-shutdown -R
- elif [ $init = sysvinit ]; then
- /usr/bin/init u
- else
- echo >&2 " WARNING: Unidentified init."
- exit 0
- fi
- }
- each_conf() {
- while read -r f; do
- "$@" "/$f"
- done
- }
- op="$1"; shift
- case $op in
- sysctl) openrc_live; each_conf /usr/bin/sysctl -q -p ;;
- binfmt) openrc_live; each_conf /usr/lib/rc/sh/binfmt.sh ;;
- reexec) openrc_live; reexec_init ;;
- # For use by other packages
- reload) openrc_live; /usr/bin/rc-service "$@" reload ;;
- *) echo >&2 " Invalid operation '$op'"; exit 1 ;;
- esac
- exit 0
|