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 @@ -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 9d2fb87610cf..5f434920292f 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