diff --git a/packages/addons/service/multimedia/boblightd/source/bin/boblightd.start b/packages/addons/service/multimedia/boblightd/source/bin/boblightd.start index 201db21e76..484ea79f02 100755 --- a/packages/addons/service/multimedia/boblightd/source/bin/boblightd.start +++ b/packages/addons/service/multimedia/boblightd/source/bin/boblightd.start @@ -39,23 +39,25 @@ BOBLIGHT_X11="$ADDON_HOME/boblight.X11" LOCKDIR="/var/lock/" LOCKFILE="boblightd.disabled" +LOCKFILE_SLEEP="boblightd.sleep" export LD_LIBRARY_PATH="$ADDON_DIR/lib:$LD_LIBRARY_PATH" cp -R $ADDON_DIR/config/*.sample $ADDON_HOME > $LOG_FILE 2>&1 -if [ -f "$LOCKDIR/$LOCKFILE" ] ; then - rm -rf "$LOCKDIR/$LOCKFILE" -fi +rm -rf "$LOCKDIR/$LOCKFILE_SLEEP" &>/dev/null +boblightd.stop +rm -rf "$LOCKDIR/$LOCKFILE" &>/dev/null if [ -f "$BOBLIGHT_CONFIG" ] ; then if [ ! "$(pidof boblightd)" ]; then while [ true ] ; do + while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do + usleep 100000 + done if [ -f "$LOCKDIR/$LOCKFILE" ] ; then break fi - # Make sure the xserver has started up - wait_for_xorg # Start the boblight daemon boblightd -c $BOBLIGHT_CONFIG >> $LOG_FILE 2>&1 done & @@ -64,11 +66,12 @@ if [ -f "$BOBLIGHT_CONFIG" ] ; then if [ -e $BOBLIGHT_X11 ]; then if [ ! "$(pidof boblight-X11)" ]; then while [ true ] ; do + while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do + usleep 100000 + done if [ -f "$LOCKDIR/$LOCKFILE" ] ; then break fi - # Make sure the xserver has started up - wait_for_xorg # Start the boblight daemon boblight-X11 >> $LOG_FILE 2>&1 done & diff --git a/packages/addons/service/multimedia/boblightd/source/bin/boblightd.stop b/packages/addons/service/multimedia/boblightd/source/bin/boblightd.stop index 29f568283c..d7c5040f67 100644 --- a/packages/addons/service/multimedia/boblightd/source/bin/boblightd.stop +++ b/packages/addons/service/multimedia/boblightd/source/bin/boblightd.stop @@ -24,14 +24,22 @@ LOCKDIR="/var/lock/" LOCKFILE="boblightd.disabled" +LOCKFILE_SLEEP="boblightd.sleep" mkdir -p "$LOCKDIR" -touch "$LOCKDIR/$LOCKFILE" - -if [ "$(pidof boblightd)" ];then - killall boblightd +if [ ! -e "$LOCKDIR/$LOCKFILE_SLEEP" ] ; then + touch "$LOCKDIR/$LOCKFILE" fi -if [ "$(pidof boblight-X11)" ];then - killall boblight-X11 +if [ "$(pidof boblightd)" ] ; then + killall -q boblightd + killall -q boblight-X11 + for seq in `seq 1 10` ; do + if [ ! "$(pidof boblightd boblight-X11)" ] ; then + break + fi + usleep 200000 + done + killall -q -9 boblightd + killall -q -9 boblight-X11 fi diff --git a/packages/addons/service/multimedia/boblightd/source/sleep.d/boblightd.power b/packages/addons/service/multimedia/boblightd/source/sleep.d/boblightd.power index 1d4d4f06e5..f5b97f75bf 100644 --- a/packages/addons/service/multimedia/boblightd/source/sleep.d/boblightd.power +++ b/packages/addons/service/multimedia/boblightd/source/sleep.d/boblightd.power @@ -22,19 +22,18 @@ . /etc/profile -LOCKFILE="/var/lock/boblightd.sleep" +LOCKFILE_SLEEP="/var/lock/boblightd.sleep" case "$1" in - hibernate|suspend) + hibernate|suspend|pre) progress "Shutting down boblightd for suspending..." + touch $LOCKFILE_SLEEP boblightd.stop - touch $LOCKFILE ;; - thaw|resume) - progress "Restarting boblightd for wakeup..." - if [ -f "$LOCKFILE" ] ; then - rm -rf "$LOCKFILE" - boblightd.start + thaw|resume|post) + if [ -f "$LOCKFILE_SLEEP" ] ; then + progress "Restarting boblightd for wakeup..." + rm -rf "$LOCKFILE_SLEEP" fi ;; *) exit $NA