12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #!/bin/sh -e
- is_chrooted() {
- if systemd-detect-virt --chroot; then
- echo >&2 " Skipped: Running in chroot."
- exit 0
- fi
- }
- systemd_live() {
- is_chrooted
- if [ ! -d /run/systemd/system ]; then
- echo >&2 " Skipped: Current root is not booted."
- exit 0
- fi
- }
- udevd_live() {
- is_chrooted
- if [ ! -S /run/udev/control ]; then
- echo >&2 " Skipped: Device manager is not running."
- exit 0
- fi
- }
- op="$1"; shift
- case "$op" in
- binfmt)
- systemd_live
- /usr/lib/systemd/systemd-binfmt
- ;;
- catalog)
- /usr/bin/journalctl --update-catalog
- ;;
- daemon-reload-system)
- systemd_live
- /usr/bin/systemctl --system daemon-reload
- ;;
- daemon-reload-user)
- systemd_live
- /usr/bin/systemctl kill --kill-whom='main' --signal='SIGHUP' 'user@*.service'
- ;;
- hwdb)
- /usr/bin/systemd-hwdb --usr update
- ;;
- sysctl)
- systemd_live
- /usr/lib/systemd/systemd-sysctl
- ;;
- sysusers)
- /usr/bin/systemd-sysusers
- ;;
- tmpfiles)
- /usr/bin/systemd-tmpfiles --create
- ;;
- update)
- touch -c /usr
- ;;
- udev-reload)
- udevd_live
- /usr/bin/udevadm control --reload
- if [ ! -e /etc/systemd/do-not-udevadm-trigger-on-update ]; then
- /usr/bin/udevadm trigger -c change
- /usr/bin/udevadm settle
- fi
- ;;
- # For use by other packages
- reload)
- systemd_live
- /usr/bin/systemctl try-reload-or-restart "$@"
- ;;
- *)
- echo >&2 " Invalid operation '$op'"
- exit 1
- ;;
- esac
- exit 0
|