summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authormtm <mtm@FreeBSD.org>2003-06-09 17:44:30 +0000
committermtm <mtm@FreeBSD.org>2003-06-09 17:44:30 +0000
commitf291e0547037edaf6a83b5b1734fdf48232f4177 (patch)
tree538acd5225392237a5a5e9725ebbc1b8081da350 /etc
parentae455223406d6a2cafdf2f32371a238a5975973f (diff)
downloadFreeBSD-src-f291e0547037edaf6a83b5b1734fdf48232f4177.zip
FreeBSD-src-f291e0547037edaf6a83b5b1734fdf48232f4177.tar.gz
o Have rc.d/apm report on the status of apm.
o Modify rc.d/apmd to make correct use of this information. Submitted by: Simon L. Nielsen <simon@nitro.dk> (with minor modifications)
Diffstat (limited to 'etc')
-rw-r--r--etc/rc.d/apm18
-rwxr-xr-xetc/rc.d/apmd14
2 files changed, 29 insertions, 3 deletions
diff --git a/etc/rc.d/apm b/etc/rc.d/apm
index d88f7c0..fdae6bc 100644
--- a/etc/rc.d/apm
+++ b/etc/rc.d/apm
@@ -14,7 +14,9 @@ name="apm"
rcvar=`set_rcvar`
start_precmd="apm_precmd"
command="/usr/sbin/${name}"
-command_args="-e enable"
+start_cmd="${command} -e enable"
+stop_cmd="${command} -e disable"
+status_cmd="apm_status"
apm_precmd()
{
@@ -26,5 +28,19 @@ apm_precmd()
return 1
}
+apm_status()
+{
+ case `${command} -s` in
+ 1)
+ echo "APM is enabled."
+ return 0
+ ;;
+ 0)
+ echo "APM is disabled"
+ ;;
+ esac
+ return 1
+}
+
load_rc_config $name
run_rc_command "$1"
diff --git a/etc/rc.d/apmd b/etc/rc.d/apmd
index 9d2fb87..5f43492 100755
--- a/etc/rc.d/apmd
+++ b/etc/rc.d/apmd
@@ -25,8 +25,18 @@ apmd_prestart()
{
case `${SYSCTL_N} hw.machine_arch` in
i386)
- # Start apm if it is not already running
- /etc/rc.d/apm forcestatus > /dev/null || /etc/rc.d/apm forcestart
+ # Enable apm if it is not already enabled
+ if ! checkyesno apm_enable && \
+ ! /etc/rc.d/apm forcestatus 1>/dev/null 2>&1
+ then
+ force_depend apm || return 1
+ fi
+
+ # Warn user about acpi apm compatibility support which
+ # does not work with apmd.
+ if [ ! -e /dev/apmctl ]; then
+ warn "/dev/apmctl not found; kernel is missing apm(4)"
+ fi
;;
*)
return 1
OpenPOWER on IntegriCloud