diff --git a/etc/rc.d/apm b/etc/rc.d/apm index d88f7c067478..fdae6bc7aa9b 100644 --- a/etc/rc.d/apm +++ b/etc/rc.d/apm @@ -1,30 +1,46 @@ #!/bin/sh # # $FreeBSD$ # # PROVIDE: apm # REQUIRE: DAEMON # BEFORE: LOGIN # KEYWORD: FreeBSD . /etc/rc.subr 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() { case `${SYSCTL_N} hw.machine_arch` in i386) return 0 ;; esac 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 9d2fb87610cf..5f434920292f 100755 --- a/etc/rc.d/apmd +++ b/etc/rc.d/apmd @@ -1,39 +1,49 @@ #!/bin/sh # # $NetBSD: apmd,v 1.5 2002/03/22 04:33:58 thorpej Exp $ # $FreeBSD$ # # PROVIDE: apmd # REQUIRE: DAEMON apm # BEFORE: LOGIN # KEYWORD: FreeBSD NetBSD . /etc/rc.subr name="apmd" rcvar=`set_rcvar` command="/usr/sbin/${name}" case ${OSTYPE} in FreeBSD) start_precmd="apmd_prestart" ;; esac 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 ;; esac return 0 } load_rc_config $name run_rc_command "$1"