You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.6 KiB
Bash

if [ -n "${SERVICE_DEBUG_OUTPUT}" ]; then
[ "${SERVICE_DEBUG_OUTPUT}" -eq 1 ] && export SVCDBG="debug_"
fi
debug_service_start() {
local serv="`echo $1 | awk -F'/' '{print $NF}'`"
"$@" >/dev/console 2>/dev/console &
echo `ps | grep $1 | grep -v grep | awk '{print \$1}'`> /var/run/${serv}.pid
}
debug_service_stop() {
local serv="`echo $1 | awk -F'/' '{print $NF}'`"
local serv_pid="`ps | grep $1 | grep -v grep | awk '{print \$1}'`"
[ -z "$serv_pid" ] || kill $serv_pid
rm -f /var/run/${serv}.pid
}
whc_debug() {
if [ -n "$WHC_DEBUG_OUTPUT" ]; then
if [ "$WHC_DEBUG_OUTPUT" -gt 0 ]; then
echo "${1}: ""$2"> /dev/console
fi
fi
}
whc_echo() {
echo "${1}: ""$2"> /dev/console
}
whc_error() {
echo "${1}: ERROR: ""$2"> /dev/console
}
__CONFIG_LOCK_SUFFIX='-wifi-config'
# Protect against simultaneous changes to the Wi-Fi configuration (via WHC
# components) by grabbing this lock.
whc_wifi_config_lock() {
__whc_lock $__CONFIG_LOCK_SUFFIX
}
# Release the lock used to protect against simultaneous changes to Wi-Fi
# configuration by WHC components.
whc_wifi_config_unlock() {
__whc_unlock $__CONFIG_LOCK_SUFFIX
}
__whc_trap_cb() {
whc_error $0 "unexpected termination"
}
# whc_lock
# input: $1: (optional) lock suffix, $2: (optional) trap callback
__whc_lock() {
local trap_cb="$2"
local lock=/var/run/whc${1}.lock
lock $lock
[ -z "$trap_cb" ] && trap_cb=__whc_trap_cb
trap $trap_cb INT TERM ABRT QUIT ALRM
}
# whc_unlock
# input: $1: (optional) lock suffix
__whc_unlock() {
local lock=/var/run/whc${1}.lock
trap - INT TERM ABRT QUIT ALRM
lock -u $lock
}