mirror of
https://github.com/unraid/webgui.git
synced 2026-01-08 02:29:51 -06:00
142 lines
3.9 KiB
Bash
Executable File
142 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# script: rc.messagebus
|
|
#
|
|
# messagebus: The D-BUS systemwide message bus
|
|
#
|
|
# description: This is a daemon which broadcasts notifications of system events \
|
|
# and other messages. See http://www.freedesktop.org/software/dbus/
|
|
#
|
|
# processname: dbus-daemon
|
|
|
|
# This is a modified version of the rc.messagebus script distributed with the
|
|
# dbus sources. Thanks to Don Tanner of the GWare <http://gware.org> Project
|
|
# for most of the work involved --Robby Workman <rworkman@slackware.com>
|
|
#
|
|
# LimeTech - modified for Unraid OS
|
|
# Bergware - modified for Unraid OS, October 2023
|
|
|
|
DAEMON="System Message Bus"
|
|
PIDFILE="/var/run/dbus/dbus.pid"
|
|
|
|
# run & log functions
|
|
. /etc/rc.d/rc.runlog
|
|
|
|
dbus_running(){
|
|
sleep 0.1
|
|
ps -u messagebus -c | grep -wq dbus-daemon
|
|
}
|
|
|
|
dbus_start(){
|
|
log "Starting $DAEMON..."
|
|
local REPLY
|
|
if dbus_running; then
|
|
REPLY="Already started"
|
|
else
|
|
mkdir -p $(dirname $PIDFILE)
|
|
rm -f $(dirname $PIDFILE)/*
|
|
if [[ -x /usr/bin/dbus-uuidgen && -x /usr/bin/dbus-daemon ]]; then
|
|
if [ ! -e /etc/no-machine-id ]; then
|
|
# Ah, the machine-id. DBus won't work right without it, and browsers and
|
|
# other software will make use of this identifier. If you hate that idea,
|
|
# you may create /etc/no-machine-id and then delete /etc/machine-id and
|
|
# /var/lib/dbus/machine-id and we won't try to create these again.
|
|
# You might pay for your "privacy" with bugs, though.
|
|
# It is not recommended to do this, but it's your machine.
|
|
#
|
|
# If /etc/machine-id is a symlink, get rid of it:
|
|
if [ -L /etc/machine-id ]; then
|
|
rm -f /etc/machine-id
|
|
fi
|
|
# If /var/lib/dbus/machine-id is a symlink, get rid of it:
|
|
if [ -L /var/lib/dbus/machine-id ]; then
|
|
rm -f /var/lib/dbus/machine-id
|
|
fi
|
|
# If you have both /etc/machine-id and /var/lib/dbus/machine-id then we will
|
|
# keep /etc/machine-id and back up /var/lib/dbus/machine-id:
|
|
if [ -r /etc/machine-id -a -r /var/lib/dbus/machine-id ]; then
|
|
mv /var/lib/dbus/machine-id /var/lib/dbus/machine-id.backup
|
|
fi
|
|
# If there's a /var/lib/dbus/machine-id file, and no /etc/machine-id, move it:
|
|
if [ -r /var/lib/dbus/machine-id -a ! -e /etc/machine-id ]; then
|
|
mv /var/lib/dbus/machine-id /etc/machine-id
|
|
chmod 444 /etc/machine-id
|
|
fi
|
|
# If there's no /etc/machine-id, fix that:
|
|
if [ ! -r /etc/machine-id ]; then
|
|
/usr/bin/dbus-uuidgen --ensure=/etc/machine-id
|
|
chmod 444 /etc/machine-id
|
|
fi
|
|
# Create the var/lib/dbus/machine-id symlink:
|
|
rm -f /var/lib/dbus/machine-id
|
|
ln -sf /etc/machine-id /var/lib/dbus/machine-id
|
|
fi
|
|
run /usr/bin/dbus-daemon --system
|
|
fi
|
|
if dbus_running; then REPLY="Started"; else REPLY="Failed"; fi
|
|
fi
|
|
log "$DAEMON... $REPLY."
|
|
}
|
|
|
|
dbus_stop(){
|
|
log "Stopping $DAEMON..."
|
|
local REPLY
|
|
if ! dbus_running; then
|
|
REPLY="Already stopped"
|
|
else
|
|
run kill $(cat $PIDFILE)
|
|
# Just in case:
|
|
run killall --ns $$ dbus-daemon
|
|
rm -f $PIDFILE
|
|
if ! dbus_running; then REPLY="Stopped"; else REPLY="Failed"; fi
|
|
fi
|
|
log "$DAEMON... $REPLY."
|
|
}
|
|
|
|
dbus_reload(){
|
|
log "Reloading $DAEMON..."
|
|
if [[ -e $PIDFILE ]]; then
|
|
pid=$(cat $PIDFILE)
|
|
run kill -HUP $pid
|
|
else
|
|
run killall --ns $$ -HUP dbus-daemon
|
|
fi
|
|
log "$DAEMON... Reloaded."
|
|
}
|
|
|
|
dbus_status(){
|
|
if dbus_running; then
|
|
echo "$DAEMON is currently running."
|
|
else
|
|
echo "$DAEMON is not running."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# See how we were called.
|
|
case "$1" in
|
|
'start')
|
|
dbus_start
|
|
;;
|
|
'stop')
|
|
dbus_stop
|
|
;;
|
|
'restart')
|
|
dbus_stop
|
|
sleep 1
|
|
dbus_start
|
|
log "You may need to restart your Window Manager to reconnect to the system dbus."
|
|
;;
|
|
'reload')
|
|
dbus_reload
|
|
;;
|
|
'status')
|
|
dbus_status
|
|
;;
|
|
*)
|
|
echo "Usage: $BASENAME start|stop|restart|reload|status"
|
|
exit 1
|
|
;;
|
|
esac
|
|
exit 0
|