move init.d examples under support and install them
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
MK= ../mk
|
||||
include ${MK}/os.mk
|
||||
|
||||
SUBDIR= deptree2dot openvpn
|
||||
SUBDIR= deptree2dot init.d.examples openvpn
|
||||
|
||||
ifeq (${OS},Linux)
|
||||
SUBDIR+= sysvinit
|
||||
|
11
support/init.d.examples/.gitignore
vendored
Normal file
11
support/init.d.examples/.gitignore
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
avahi-dnsconfd
|
||||
avahid
|
||||
dhcpcd
|
||||
dbus
|
||||
hald
|
||||
named
|
||||
ntpd
|
||||
openvpn
|
||||
polkitd
|
||||
sshd
|
||||
wpa_supplicant
|
13
support/init.d.examples/Makefile
Normal file
13
support/init.d.examples/Makefile
Normal file
@@ -0,0 +1,13 @@
|
||||
DIR= ${DATADIR}/support/init.d.examples
|
||||
INC= README.md
|
||||
SRCS= avahi-dnsconfd.in avahid.in dhcpcd.in dbus.in \
|
||||
hald.in named.in ntpd.in \
|
||||
openvpn.in polkitd.in sshd.in wpa_supplicant.in
|
||||
BIN= ${OBJS}
|
||||
|
||||
MK= ../../mk
|
||||
|
||||
SED_EXTRA+= -e 's:@VARBASE@:/var:g'
|
||||
|
||||
include ${MK}/os.mk
|
||||
include ${MK}/scripts.mk
|
3
support/init.d.examples/README.md
Normal file
3
support/init.d.examples/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
The service scripts in this directory are meant as examples only.
|
||||
They are not installed by default as the scripts will need tweaking on a
|
||||
per distro basis. They are also non essential to the operation of the system.
|
22
support/init.d.examples/avahi-dnsconfd.in
Normal file
22
support/init.d.examples/avahi-dnsconfd.in
Normal file
@@ -0,0 +1,22 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=@PKG_PREFIX@/sbin/avahi-dnsconfd
|
||||
command_args="$avahi_dnsconfd_args -D"
|
||||
pidfile=@VARBASE@/run/avahi-dnsconfd.pid
|
||||
name="Avahi DNS Configuration Daemon"
|
||||
|
||||
depend()
|
||||
{
|
||||
use dns
|
||||
need localmount dbus
|
||||
after bootmisc
|
||||
}
|
22
support/init.d.examples/avahid.in
Normal file
22
support/init.d.examples/avahid.in
Normal file
@@ -0,0 +1,22 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=@PKG_PREFIX@/sbin/avahi-daemon
|
||||
command_args="$avahid_args -D"
|
||||
pidfile=@VARBASE@/run/avahi-daemon/pid
|
||||
name="Avahi Service Advertisement Daemon"
|
||||
|
||||
depend()
|
||||
{
|
||||
use dns
|
||||
need localmount dbus
|
||||
after bootmisc
|
||||
}
|
26
support/init.d.examples/dbus.in
Normal file
26
support/init.d.examples/dbus.in
Normal file
@@ -0,0 +1,26 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=@PKG_PREFIX@/bin/dbus-daemon
|
||||
pidfile=@VARBASE@/run/dbus/pid
|
||||
command_args="${dbusd_args---system}"
|
||||
name="Message Bus Daemon"
|
||||
|
||||
depend()
|
||||
{
|
||||
need localmount net
|
||||
after bootmisc
|
||||
}
|
||||
|
||||
start_pre()
|
||||
{
|
||||
mkdir -p $(dirname $pidfile)
|
||||
}
|
34
support/init.d.examples/dhcpcd.in
Normal file
34
support/init.d.examples/dhcpcd.in
Normal file
@@ -0,0 +1,34 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=/sbin/dhcpcd
|
||||
pidfile=/var/run/dhcpcd.pid
|
||||
command_args=-q
|
||||
name="DHCP Client Daemon"
|
||||
|
||||
depend()
|
||||
{
|
||||
provide net
|
||||
need localmount
|
||||
use logger
|
||||
after bootmisc modules
|
||||
before dns
|
||||
}
|
||||
|
||||
stop_pre()
|
||||
{
|
||||
# When shutting down, kill dhcpcd but preserve network
|
||||
# We do this as /var/run/dhcpcd could be cleaned out when we
|
||||
# return to multiuser.
|
||||
if yesno $RC_GOINGDOWN; then
|
||||
: ${stopsig:=SIGKILL}
|
||||
fi
|
||||
}
|
31
support/init.d.examples/dnsmasq.in
Normal file
31
support/init.d.examples/dnsmasq.in
Normal file
@@ -0,0 +1,31 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=@PKG_PREFIX@/sbin/dnsmasq
|
||||
command_args=$dnsmasq_args
|
||||
pidfile=@VARBASE@/run/dnsmasq.pid
|
||||
required_files=/etc/dnsmasq.conf
|
||||
|
||||
extra_started_commands="reload"
|
||||
|
||||
depend()
|
||||
{
|
||||
provide dns
|
||||
need localmount net
|
||||
after bootmisc
|
||||
}
|
||||
|
||||
reload()
|
||||
{
|
||||
ebegin "Reloading $RC_SVCNAME"
|
||||
start-stop-daemon --signal SIGHUP --pidfile "$pidfile"
|
||||
eend $?
|
||||
}
|
20
support/init.d.examples/hald.in
Normal file
20
support/init.d.examples/hald.in
Normal file
@@ -0,0 +1,20 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=@PKG_PREFIX@/sbin/hald
|
||||
pidfile=@VARBASE@/run/hald/hald.pid
|
||||
command_args=$hald_args
|
||||
name="Hardware Abstraction Layer Daemon"
|
||||
|
||||
depend()
|
||||
{
|
||||
need dbus
|
||||
}
|
119
support/init.d.examples/named.in
Normal file
119
support/init.d.examples/named.in
Normal file
@@ -0,0 +1,119 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=/usr/sbin/named
|
||||
command_args=$named_args
|
||||
pidfile=@VARBASE@/run/named.pid
|
||||
name="Domain Name server"
|
||||
extra_started_commands="reload"
|
||||
|
||||
namedb=/etc/namedb
|
||||
uid=named
|
||||
case "$RC_UNAME" in
|
||||
FreeBSD)
|
||||
uid=bind
|
||||
pidfile=@VARBASE@/run/named/pid
|
||||
;;
|
||||
Linux)
|
||||
uid=bind
|
||||
;;
|
||||
esac
|
||||
: ${named_uid:=${uid}}
|
||||
|
||||
depend()
|
||||
{
|
||||
provide dns
|
||||
need localmount
|
||||
after bootmisc
|
||||
}
|
||||
|
||||
start_pre()
|
||||
{
|
||||
if [ -n "$named_chroot" ]; then
|
||||
# Create (or update) the chroot directory structure
|
||||
if [ -r /etc/mtree/BIND.chroot.dist ]; then
|
||||
mtree -deU -f /etc/mtree/BIND.chroot.dist -p "$named_chroot"
|
||||
else
|
||||
ewarn "/etc/mtree/BIND.chroot.dist missing,"
|
||||
ewarn "chroot directory structure not updated"
|
||||
fi
|
||||
|
||||
if [ ! -d "$named_chroot"/. ]; then
|
||||
eerror "chroot directory $named_chroot missing"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Create /etc/namedb symlink
|
||||
if [ ! -L "$namedb" ]; then
|
||||
if [ -d "$namedb" ]; then
|
||||
ewarn "named chroot: $namedb is a directory!"
|
||||
elif [ -e "$namedb" ]; then
|
||||
ewarn "named chroot: $namedb exists!"
|
||||
else
|
||||
ln -s "$named_chroot$namedb" "$namedb"
|
||||
fi
|
||||
else
|
||||
# Make sure it points to the right place.
|
||||
ln -shf "$named_chroot$namedb" "$namedb"
|
||||
fi
|
||||
|
||||
case "$RC_UNAME" in
|
||||
*BSD|DragonFly)
|
||||
# Mount a devfs in the chroot directory if needed
|
||||
umount "$named_chroot"/dev 2>/dev/null
|
||||
mount -t devfs dev "$named_chroot"/dev
|
||||
devfs -m "$named_chroot"/dev \
|
||||
ruleset devfsrules_hide_all
|
||||
devfs -m "$named_chroot"/dev \
|
||||
rule apply path null unhide
|
||||
devfs -m "$named_chroot"/dev \
|
||||
rule apply path random unhide
|
||||
;;
|
||||
esac
|
||||
|
||||
# Copy local timezone information if it is not up to date.
|
||||
if [ -r /etc/localtime ]; then
|
||||
cmp -s /etc/localtime "$named_chroot/etc/localtime" ||
|
||||
cp -p /etc/localtime "$named_chroot/etc/localtime"
|
||||
fi
|
||||
|
||||
command_args="$command_args -t $named_chroot"
|
||||
|
||||
ln -fs "$named_chroot$pidfile" "$pidfile"
|
||||
fi
|
||||
|
||||
if [ ! -s "$named_chroot$namedb/rndc.conf" ]; then
|
||||
local confgen="${command%/named}/rndc-confgen -a -b256 -u $named_uid \
|
||||
-c $named_chrootdir/etc/namedb/rndc.key"
|
||||
if [ -s "$named_chroot$namedb/rndc.key" ]; then
|
||||
local getuser="stat -f%Su"
|
||||
[ "$RC_UNAME" = Linux ] && getuser="stat -c%U"
|
||||
case $(${getuser} "$named_chroot$namedb"/rndc.key) in
|
||||
root|"$named_uid");;
|
||||
*) $confgen;;
|
||||
esac
|
||||
else
|
||||
$confgen
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
reload()
|
||||
{
|
||||
rndc reload
|
||||
}
|
||||
|
||||
stop_post()
|
||||
{
|
||||
if [ -n "$named_chroot" -a -c "$named_chroot"/dev/null ]; then
|
||||
umount "$named_chroot"/dev 2>/dev/null || true
|
||||
fi
|
||||
}
|
44
support/init.d.examples/ntpd.in
Normal file
44
support/init.d.examples/ntpd.in
Normal file
@@ -0,0 +1,44 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
: ${ntpd_config:=/etc/ntp.conf}
|
||||
: ${ntpd_drift:=/var/db/ntpd.drift}
|
||||
|
||||
command=/usr/sbin/ntpd
|
||||
required_files=$ntpd_config
|
||||
pidfile=/var/run/ntpd.pid
|
||||
command_args="$ntpd_args -c $ntpd_config -f $ntpd_drift -p $pidfile"
|
||||
name="Network Time Protocol Daemon"
|
||||
|
||||
depend()
|
||||
{
|
||||
use dns
|
||||
need localmount
|
||||
after bootmisc ntp-client
|
||||
}
|
||||
|
||||
start_pre()
|
||||
{
|
||||
if [ -n "$ntpd_chroot" ]; then
|
||||
case "$RC_UNAME" in
|
||||
*BSD|DragonFly)
|
||||
if [ ! -c "$ntpd_chroot/dev/clockctl" ]; then
|
||||
rm -f "$ntpd_chroot/dev/clockctl"
|
||||
(cd /dev; /bin/pax -rw -pe clockctl \
|
||||
"$ntpd_chroot/dev")
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
ln -fs "$ntpd_chroot$ntpd_drift" "$ntpd_drift"
|
||||
|
||||
command_args="$command_args -u ntpd:ntpd -i $ntpd_chroot"
|
||||
fi
|
||||
}
|
74
support/init.d.examples/openvpn.in
Normal file
74
support/init.d.examples/openvpn.in
Normal file
@@ -0,0 +1,74 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
vpn=${RC_SVCNAME#*.}
|
||||
name="OpenVPN"
|
||||
[ "$vpn" != openvpn ] && name="$name ($vpn)"
|
||||
command=@PKG_PREFIX@/sbin/openvpn
|
||||
|
||||
pidfile=@VARBASE@/run/"$RC_SVCNAME".pid
|
||||
: ${openvpn_dir:=@PKG_PREFIX@/etc/openvpn}
|
||||
: ${openvpn_config:=$openvpn_dir/$vpn.conf}
|
||||
command_args="$openvpn_args --daemon --config $openvpn_config"
|
||||
command_args="$command_args --writepid $pidfile"
|
||||
required_dirs=$openvpn_dir
|
||||
required_files=$openvpn_config
|
||||
|
||||
# If we're an openvpn client, then supply a nice default config
|
||||
# You can find sample up/down scripts in the OpenRC support/openvpn dir
|
||||
if yesno $openvpn_client; then
|
||||
: ${openvpn_up:=${openvpn_dir}/up.sh}
|
||||
: ${openvpn_down:=${openvpn_dir}/down.sh}
|
||||
command_args="$command_args --nobind --up-delay --up-restart --down-pre"
|
||||
command_args="$command_args --up $openvpn_up"
|
||||
command_args="$command_args --down $openvpn_down"
|
||||
required_files="$required_files $openvpn_up $openvpn_down"
|
||||
|
||||
in_background_fake="start stop"
|
||||
start_inactive=YES
|
||||
fi
|
||||
|
||||
depend()
|
||||
{
|
||||
need localmount net
|
||||
use dns
|
||||
after bootmisc
|
||||
}
|
||||
|
||||
start_pre()
|
||||
{
|
||||
# Linux has good dynamic tun/tap creation
|
||||
if [ "$RC_UNAME" = Linux ]; then
|
||||
if [ ! -e /dev/net/tun ]; then
|
||||
if ! modprobe tun; then
|
||||
eerror "TUN/TAP support is not available in this kernel"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
if [ -h /dev/net/tun -a -c /dev/misc/net/tun ]; then
|
||||
ebegin "Detected broken /dev/net/tun symlink, fixing..."
|
||||
rm -f /dev/net/tun
|
||||
ln -s /dev/misc/net/tun /dev/net/tun
|
||||
eend $?
|
||||
fi
|
||||
else
|
||||
if command -v kldload >/dev/null 2>&1; then
|
||||
# Hammer the modules home by default
|
||||
sysctl -a | grep -q '\.tun\.' || kldload if_tun
|
||||
sysctl -a | grep -q '\.tap\.' || kldload if_tap
|
||||
fi
|
||||
fi
|
||||
|
||||
# If the config file does not specify the cd option, we do
|
||||
if ! grep -q "^[ \t]*cd[ \t].*" "$openvpn_config"; then
|
||||
command_args="$command_args --cd $openvpn_dir"
|
||||
fi
|
||||
}
|
20
support/init.d.examples/polkitd.in
Normal file
20
support/init.d.examples/polkitd.in
Normal file
@@ -0,0 +1,20 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=@PKG_PREFIX@/sbin/polkitd
|
||||
pidfile=@VARBASE@/run/polkitd/polkitd.pid
|
||||
command_args="$polkitd_args"
|
||||
name="PolicyKit Daemon"
|
||||
|
||||
depend()
|
||||
{
|
||||
need dbus
|
||||
}
|
42
support/init.d.examples/sshd.in
Normal file
42
support/init.d.examples/sshd.in
Normal file
@@ -0,0 +1,42 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=/usr/sbin/sshd
|
||||
command_args=$sshd_args
|
||||
pidfile=@VARBASE@/run/sshd.pid
|
||||
required_files=/etc/ssh/sshd_config
|
||||
|
||||
depend()
|
||||
{
|
||||
use logger dns
|
||||
need net
|
||||
}
|
||||
|
||||
start_pre()
|
||||
{
|
||||
if [ ! -e /etc/ssh/ssh_host_key ]; then
|
||||
ebegin "Generating Hostkey"
|
||||
ssh-keygen -t rsa1 -b 1024 -f /etc/ssh/ssh_host_key -N ''
|
||||
eend $? || return 1
|
||||
fi
|
||||
if [ ! -e /etc/ssh/ssh_host_dsa_key ]; then
|
||||
ebegin "Generating DSA Hostkey"
|
||||
ssh-keygen -d -f /etc/ssh/ssh_host_dsa_key -N ''
|
||||
eend $? || return 1
|
||||
fi
|
||||
if [ ! -e /etc/ssh/ssh_host_rsa_key ]; then
|
||||
ebegin "Generating RSA Hostkey"
|
||||
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
|
||||
eend $? || return 1
|
||||
fi
|
||||
|
||||
$command -t
|
||||
}
|
82
support/init.d.examples/wpa_supplicant.in
Normal file
82
support/init.d.examples/wpa_supplicant.in
Normal file
@@ -0,0 +1,82 @@
|
||||
#!@SBINDIR@/openrc-run
|
||||
# Copyright (c) 2007-2015 The OpenRC Authors.
|
||||
# See the Authors file at the top-level directory of this distribution and
|
||||
# https://github.com/OpenRC/openrc/blob/master/AUTHORS
|
||||
#
|
||||
# This file is part of OpenRC. It is subject to the license terms in
|
||||
# the LICENSE file found in the top-level directory of this
|
||||
# distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE
|
||||
# This file may not be copied, modified, propagated, or distributed
|
||||
# except according to the terms contained in the LICENSE file.
|
||||
|
||||
command=/usr/sbin/wpa_supplicant
|
||||
: ${wpa_supplicant_conf:=/etc/wpa_supplicant.conf}
|
||||
wpa_supplicant_if=${wpa_supplicant_if:+-i}$wpa_supplicant_if
|
||||
command_args="$wpa_supplicant_args -B -c$wpa_supplicant_conf $wpa_supplicant_if"
|
||||
name="WPA Supplicant Daemon"
|
||||
|
||||
depend()
|
||||
{
|
||||
need localmount
|
||||
use logger
|
||||
after bootmisc modules
|
||||
before dns dhcpcd net
|
||||
keyword -shutdown
|
||||
}
|
||||
|
||||
find_wireless()
|
||||
{
|
||||
local iface=
|
||||
|
||||
case "$RC_UNAME" in
|
||||
Linux)
|
||||
for iface in /sys/class/net/*; do
|
||||
if [ -e "$iface"/wireless -o \
|
||||
-e "$iface"/phy80211 ]
|
||||
then
|
||||
echo "${iface##*/}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
;;
|
||||
FreeBSD)
|
||||
for iface in $(sysctl -b net.wlan.devices 2>/dev/null); do
|
||||
echo "${iface##*/}"
|
||||
done
|
||||
;;
|
||||
*)
|
||||
for iface in /dev/net/* $(ifconfig -l 2>/dev/null); do
|
||||
if ifconfig "${iface##*/}" 2>/dev/null | \
|
||||
grep -q "[ ]*ssid "
|
||||
then
|
||||
echo "${iface##*/}"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
|
||||
return 1
|
||||
}
|
||||
|
||||
append_wireless()
|
||||
{
|
||||
local iface= i=
|
||||
|
||||
iface=$(find_wireless)
|
||||
if [ -n "$iface" ]; then
|
||||
for i in $iface; do
|
||||
command_args="$command_args -i$i"
|
||||
done
|
||||
else
|
||||
eerror "Could not find a wireless interface"
|
||||
fi
|
||||
}
|
||||
|
||||
start_pre()
|
||||
{
|
||||
case " $command_args" in
|
||||
*" -i"*) ;;
|
||||
*) append_wireless;;
|
||||
esac
|
||||
}
|
Reference in New Issue
Block a user