34 lines
709 B
Bash
Executable File
34 lines
709 B
Bash
Executable File
#!/bin/sh
|
|
# A wrapper for programs that can't write to syslog. Output and error
|
|
# are sent to syslog.
|
|
#
|
|
# Use LOGGER environment variable to pass options to `logger`. They'll
|
|
# probably be system-dependent, so handle with care.
|
|
#
|
|
# Usage:
|
|
#
|
|
# LOGGER="-t program" syslogize program -o -p --tions argu ments
|
|
#
|
|
# daemonize /usr/local/bin/syslogize program
|
|
|
|
if test $# -eq 0 ; then
|
|
grep "^#" $0 | grep -v /bin/sh | sed -re "s/^#\s*//" >&2
|
|
|
|
exit 1
|
|
fi
|
|
|
|
LOGGER="${LOGGER:--t $1}"
|
|
|
|
propagate_signal () {
|
|
logger ${LOGGER} "Received $1 signal"
|
|
jobs -p | xargs kill -$1
|
|
}
|
|
|
|
for signal in HUP INT QUIT USR1 USR2 TERM; do
|
|
trap "propagate_signal ${signal}" ${signal}
|
|
done
|
|
|
|
$@ 2>&1 | logger ${LOGGER} &
|
|
|
|
wait $!
|