#!/bin/sh # Notify the rc system that we're in the background export IN_BACKGROUND=true arg1="$1" if [ -z "$arg1" ] ; then echo "Command required" > /dev/stderr exit 1 fi shift case "$arg1" in add) if [ -z "$1" ] ; then echo "Command missing!" > /dev/stderr exit 1 fi # If we don't have a queue then just run if [ ! -d /var/run/devd ] ; then "$@" exit $? fi cmd="$1" args="$*" if [ "$cmd" = "env" ] ; then shift while echo "$1" | grep -q "="; do shift [ "$1" = "--" ] && shift && break done cmd="$1" fi echo "$args" > /var/run/devd/$(basename "$cmd") ;; flush) while ! rmdir /var/run/devd 2>/dev/null ; do for cmd in $(cd /var/run/devd; ls) ; do args=$(cat /var/run/devd/$cmd) rm -f /var/run/devd/$cmd $args done done ;; *) echo "Unknown command $arg1" ;; esac