xref: /dflybsd-src/etc/rc.d/devd (revision ce0833857e05eba4d13f3fd8a4d049ea68c5ffa4)
171fc104fSHasso Tepper#!/bin/sh
271fc104fSHasso Tepper#
3e348c2adSSascha Wildner# $FreeBSD: head/etc/rc.d/devd 238416 2012-07-13 06:46:09Z kevlo $
4e348c2adSSascha Wildner#
571fc104fSHasso Tepper
671fc104fSHasso Tepper# PROVIDE: devd
771fc104fSHasso Tepper# REQUIRE: netif network_ipv6
8*ce083385SAaron LI# BEFORE:  NETWORKING
971fc104fSHasso Tepper# KEYWORD: nojail shutdown
1071fc104fSHasso Tepper
1171fc104fSHasso Tepper. /etc/rc.subr
1271fc104fSHasso Tepper
1371fc104fSHasso Teppername="devd"
14e348c2adSSascha Wildnerrcvar="devd_enable"
1571fc104fSHasso Teppercommand="/sbin/${name}"
1671fc104fSHasso Tepper
17e348c2adSSascha Wildnerstart_precmd=${name}_prestart
18e348c2adSSascha Wildnerstop_precmd=find_pidfile
19e348c2adSSascha Wildner
20e348c2adSSascha Wildnerfind_pidfile()
21e348c2adSSascha Wildner{
22e348c2adSSascha Wildner	if get_pidfile_from_conf pid-file /etc/devd.conf; then
23e348c2adSSascha Wildner		pidfile="$_pidfile_from_conf"
24e348c2adSSascha Wildner	else
25e348c2adSSascha Wildner		pidfile="/var/run/${name}.pid"
26e348c2adSSascha Wildner	fi
27e348c2adSSascha Wildner}
28e348c2adSSascha Wildner
29e348c2adSSascha Wildnerdevd_prestart()
30e348c2adSSascha Wildner{
31e348c2adSSascha Wildner	find_pidfile
3271fc104fSHasso Tepper
3371fc104fSHasso Tepper	# If devd is disabled, turn it off in the kernel to avoid memory leaks.
3471fc104fSHasso Tepper	if ! checkyesno ${rcvar}; then
35b0a4258dSAaron LI	    ${SYSCTL_W} hw.bus.devctl_disable=1
3671fc104fSHasso Tepper	fi
37e348c2adSSascha Wildner}
38e348c2adSSascha Wildner
39e348c2adSSascha Wildnerload_rc_config $name
40e348c2adSSascha Wildnerrun_rc_command "$1"
41