xref: /freebsd/libexec/rc/rc.d/devd (revision 32a579e4fc69a65e8901111ad5f65ec56a97dfab)
1#!/bin/sh
2#
3#
4
5# PROVIDE: devd
6# REQUIRE: netif ldconfig
7# BEFORE: NETWORKING mountcritremote
8# KEYWORD: nojail shutdown
9
10. /etc/rc.subr
11
12name="devd"
13desc="Device state change daemon"
14rcvar="devd_enable"
15command="/sbin/${name}"
16
17devd_offcmd=devd_off
18start_precmd=find_pidfile
19stop_precmd=find_pidfile
20
21find_pidfile()
22{
23	if get_pidfile_from_conf pid-file /etc/devd.conf; then
24		pidfile="$_pidfile_from_conf"
25	else
26		pidfile="/var/run/${name}.pid"
27	fi
28}
29
30devd_off()
31{
32	# If devd is disabled, turn it off in the kernel to avoid unnecessary
33	# memory usage.
34	if ! checkyesno ${rcvar}; then
35	    $SYSCTL hw.bus.devctl_queue=0
36	fi
37}
38
39load_rc_config $name
40
41# doesn't make sense to run in a svcj: executing potential privileged operations
42devd_svcj="NO"
43
44run_rc_command "$1"
45