init script cleanup, use /etc/rc.d/ for enabled scripts, /etc/init.d/<pkgname> (enable|disable) manages symlinks

SVN-Revision: 5128
owl
Felix Fietkau 2006-10-15 21:03:30 +00:00
parent 6f8a93af7e
commit 8612d33691
20 changed files with 197 additions and 19 deletions

View File

@ -55,6 +55,13 @@ install-targets: base-files-install $(INSTALL_PACKAGES)
install: install:
rm -rf $(BUILD_DIR)/root rm -rf $(BUILD_DIR)/root
$(MAKE) install-targets $(MAKE) install-targets
@( \
cd $(BUILD_DIR)/root; \
for script in ./etc/init.d/*; do \
grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \
IPKG_INSTROOT=$(BUILD_DIR)/root $(which bash) ./etc/rc.common $$script enable; \
done; \
)
index: $(PACKAGE_DIR)/Packages index: $(PACKAGE_DIR)/Packages

View File

@ -2,6 +2,7 @@
# ADAM2 patcher for Netgear DG834 and compatible # ADAM2 patcher for Netgear DG834 and compatible
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
START=00
start() { start() {
MD5="$(md5sum /dev/mtdblock/0 | awk '{print $1}')" MD5="$(md5sum /dev/mtdblock/0 | awk '{print $1}')"
[ "$MD5" = "0530bfdf00ec155f4182afd70da028c1" ] && { [ "$MD5" = "0530bfdf00ec155f4182afd70da028c1" ] && {

View File

@ -1,6 +1,8 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
START=05
start() { start() {
[ -e /etc/config/network ] && exit 0 [ -e /etc/config/network ] && exit 0

View File

@ -1,6 +1,7 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
START=05
start() { start() {
[ -e /etc/config/network ] && exit 0 [ -e /etc/config/network ] && exit 0

View File

@ -1,6 +1,7 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
START=10
start() { start() {
[ -f /proc/mounts ] || /sbin/mount_root [ -f /proc/mounts ] || /sbin/mount_root
[ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc [ -f /proc/jffs2_bbc ] && echo "S" > /proc/jffs2_bbc

View File

@ -1,6 +1,7 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
START=40
start() { start() {
setup_switch() { return 0; } setup_switch() { return 0; }

View File

@ -11,8 +11,8 @@ syslogd -C 16 #${log_ipaddr:+-L -R $log_ipaddr}
klogd klogd
( (
for i in /etc/init.d/S*; do for i in /etc/rc.d/S*; do
$i start 2>&1 $i boot 2>&1
done done
sysctl -p >&- sysctl -p >&-

View File

@ -1,5 +1,9 @@
#!/bin/sh #!/bin/sh
. /etc/functions.sh # Copyright (C) 2006 OpenWrt.org
. $IPKG_INSTROOT/etc/functions.sh
START=50
start() { start() {
return 0 return 0
@ -27,12 +31,14 @@ shutdown() {
} }
disable() { disable() {
rm -f /etc/rc.d/${initscript##*/} name="$(basename "${initscript}")"
rm -f "$IPKG_INSTROOT/etc/rc.d/S??$name"
} }
enable() { enable() {
name="$(basename "${initscript}")"
disable disable
ln -s /etc/init.d/${initscript##*/} /etc/rc.d/${initscript##*/} ln -s "/etc/init.d/$name" "$IPKG_INSTROOT/etc/rc.d/S${START}${name##S[0-9][0-9]}"
} }
depends() { depends() {
@ -48,6 +54,8 @@ Available commands:
stop Stop the service stop Stop the service
restart Restart the service restart Restart the service
reload Reload configuration files (or restart if that fails) reload Reload configuration files (or restart if that fails)
enable Enable service autostart
disable Disable service autostart
$EXTRA_HELP $EXTRA_HELP
EOF EOF
} }
@ -68,6 +76,8 @@ eval "case \"\$action\" in
restart) restart;; restart) restart;;
boot) boot;; boot) boot;;
shutdown) shutdown;; shutdown) shutdown;;
enable) enable;;
disable) disable;;
$cmds $cmds
*) help;; *) help;;
esac" esac"

View File

@ -49,7 +49,7 @@ define Package/dnsmasq/install
install -m0755 -d $(1)/etc install -m0755 -d $(1)/etc
install -m0644 ./files/dnsmasq.conf $(1)/etc/dnsmasq.conf install -m0644 ./files/dnsmasq.conf $(1)/etc/dnsmasq.conf
install -m0755 -d $(1)/etc/init.d install -m0755 -d $(1)/etc/init.d
install -m0755 ./files/dnsmasq.init $(1)/etc/init.d/S50dnsmasq install -m0755 ./files/dnsmasq.init $(1)/etc/init.d/dnsmasq
endef endef
$(eval $(call BuildPackage,dnsmasq)) $(eval $(call BuildPackage,dnsmasq))

View File

@ -107,7 +107,7 @@ define Package/dropbear/install
ln -sf ../sbin/dropbear $(1)/usr/bin/dbclient ln -sf ../sbin/dropbear $(1)/usr/bin/dbclient
ln -sf ../sbin/dropbear $(1)/usr/bin/dropbearkey ln -sf ../sbin/dropbear $(1)/usr/bin/dropbearkey
install -d -m0755 $(1)/etc/init.d install -d -m0755 $(1)/etc/init.d
install -m0755 ./files/dropbear.init $(1)/etc/init.d/S50dropbear install -m0755 ./files/dropbear.init $(1)/etc/init.d/dropbear
endef endef
define Package/dropbearconvert/install define Package/dropbearconvert/install

View File

@ -195,7 +195,7 @@ define Package/iptables/install
install -d -m0755 $(1)/etc/config install -d -m0755 $(1)/etc/config
install -m0644 ./files/firewall.config $(1)/etc/config/firewall install -m0644 ./files/firewall.config $(1)/etc/config/firewall
install -d -m0755 $(1)/etc/init.d install -d -m0755 $(1)/etc/init.d
install -m0755 ./files/firewall.init $(1)/etc/init.d/S45firewall install -m0755 ./files/firewall.init $(1)/etc/init.d/firewall
install -m0755 ./files/firewall.user $(1)/etc/ install -m0755 ./files/firewall.user $(1)/etc/
install -d -m0755 $(1)/usr/lib install -d -m0755 $(1)/usr/lib
install -m0644 ./files/firewall.awk $(1)/usr/lib install -m0644 ./files/firewall.awk $(1)/usr/lib

View File

@ -2,7 +2,7 @@
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
## Please make changes in /etc/firewall.user ## Please make changes in /etc/firewall.user
START=45
start() { start() {
include /lib/network include /lib/network
scan_interfaces scan_interfaces

View File

@ -120,7 +120,7 @@ endif
ifeq ($(findstring PCI,$(BUS)),PCI) ifeq ($(findstring PCI,$(BUS)),PCI)
echo ath_pci >> $(1)/etc/modules.d/20-madwifi echo ath_pci >> $(1)/etc/modules.d/20-madwifi
endif endif
install -m0755 ./files/madwifi.init $(1)/etc/init.d/S20madwifi install -m0755 ./files/madwifi.init $(1)/etc/init.d/madwifi
$(CP) \ $(CP) \
$(PKG_BUILD_DIR)/ath/ath_hal.$(LINUX_KMOD_SUFFIX) \ $(PKG_BUILD_DIR)/ath/ath_hal.$(LINUX_KMOD_SUFFIX) \
$(BUS_MODULES) \ $(BUS_MODULES) \

View File

@ -1,4 +1,5 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
start() { START=20
boot() {
iwpriv ath0 mode 3 iwpriv ath0 mode 3
} }

View File

@ -21,8 +21,6 @@ PKG_CAT:=zcat
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
PKG_INIT_PRIO:=60
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/openswan/Default define Package/openswan/Default
@ -76,7 +74,7 @@ endef
define Package/openswan/install define Package/openswan/install
$(CP) $(PKG_INSTALL_DIR)/* $(1) $(CP) $(PKG_INSTALL_DIR)/* $(1)
install -d -m0755 $(1)/etc/init.d install -d -m0755 $(1)/etc/init.d
$(CP) $(1)/etc/rc.d/init.d/ipsec $(1)/etc/init.d/S$(PKG_INIT_PRIO)ipsec $(CP) ./files/ipsec.init $(1)/etc/init.d/ipsec
rm -rf $(1)/usr/share rm -rf $(1)/usr/share
rm -rf $(1)/usr/man rm -rf $(1)/usr/man
rm -rf $(1)/var rm -rf $(1)/var

158
package/openswan/files/ipsec.init Executable file
View File

@ -0,0 +1,158 @@
#!/bin/sh /etc/rc.common
# IPsec startup and shutdown script
# Copyright (C) 1998, 1999, 2001 Henry Spencer.
# Copyright (C) 2002 Michael Richardson <mcr@freeswan.org>
# Copyright (C) 2006 OpenWrt.org
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
#
# RCSID $Id: setup.in,v 1.122.6.1 2005/07/25 19:17:03 ken Exp $
#
# ipsec init.d script for starting and stopping
# the IPsec security subsystem (KLIPS and Pluto).
#
# This script becomes /etc/rc.d/init.d/ipsec (or possibly /etc/init.d/ipsec)
# and is also accessible as "ipsec setup" (the preferred route for human
# invocation).
#
# The startup and shutdown times are a difficult compromise (in particular,
# it is almost impossible to reconcile them with the insanely early/late
# times of NFS filesystem startup/shutdown). Startup is after startup of
# syslog and pcmcia support; shutdown is just before shutdown of syslog.
#
# chkconfig: 2345 47 76
# description: IPsec provides encrypted and authenticated communications; \
# KLIPS is the kernel half of it, Pluto is the user-level management daemon.
START=60
script_init() {
me='ipsec setup' # for messages
# where the private directory and the config files are
IPSEC_EXECDIR="${IPSEC_EXECDIR-/usr/libexec/ipsec}"
IPSEC_LIBDIR="${IPSEC_LIBDIR-/usr/lib/ipsec}"
IPSEC_SBINDIR="${IPSEC_SBINDIR-/usr/sbin}"
IPSEC_CONFS="${IPSEC_CONFS-/etc}"
if test " $IPSEC_DIR" = " " # if we were not called by the ipsec command
then
# we must establish a suitable PATH ourselves
PATH="${IPSEC_SBINDIR}":/sbin:/usr/sbin:/usr/local/bin:/bin:/usr/bin
export PATH
IPSEC_DIR="$IPSEC_LIBDIR"
export IPSEC_DIR IPSEC_CONFS IPSEC_LIBDIR IPSEC_EXECDIR
fi
# Check that the ipsec command is available.
found=
for dir in `echo $PATH | tr ':' ' '`
do
if test -f $dir/ipsec -a -x $dir/ipsec
then
found=yes
break # NOTE BREAK OUT
fi
done
if ! test "$found"
then
echo "cannot find ipsec command -- \`$1' aborted" |
logger -s -p daemon.error -t ipsec_setup
exit 1
fi
# Pick up IPsec configuration (until we have done this, successfully, we
# do not know where errors should go, hence the explicit "daemon.error"s.)
# Note the "--export", which exports the variables created.
eval `ipsec _confread $config --optional --varprefix IPSEC --export --type config setup`
if test " $IPSEC_confreadstatus" != " "
then
case $1 in
stop|--stop|_autostop)
echo "$IPSEC_confreadstatus -- \`$1' may not work" |
logger -s -p daemon.error -t ipsec_setup;;
*) echo "$IPSEC_confreadstatus -- \`$1' aborted" |
logger -s -p daemon.error -t ipsec_setup;
exit 1;;
esac
fi
IPSEC_confreadsection=${IPSEC_confreadsection:-setup}
export IPSEC_confreadsection
IPSECsyslog=${IPSECsyslog-daemon.error}
export IPSECsyslog
# misc setup
umask 022
mkdir -p /var/run/pluto
}
script_command() {
if [ "${USER}" != "root" ]
then
echo "permission denied (must be superuser)" |
logger -s -p $IPSECsyslog -t ipsec_setup 2>&1
exit 1
fi
# make sure all required directories exist
if [ ! -d /var/run/pluto ]
then
mkdir -p /var/run/pluto
fi
if [ ! -d /var/lock/subsys ]
then
mkdir -p /var/lock/subsys
fi
tmp=/var/run/pluto/ipsec_setup.st
outtmp=/var/run/pluto/ipsec_setup.out
(
ipsec _realsetup $1
echo "$?" >$tmp
) > ${outtmp} 2>&1
st=$?
if test -f $tmp
then
st=`cat $tmp`
rm -f $tmp
fi
if [ -f ${outtmp} ]; then
cat ${outtmp} | logger -s -p $IPSECsyslog -t ipsec_setup 2>&1
rm -f ${outtmp}
fi
}
start() {
script_init start "$@"
script_command start "$@"
}
stop() {
script_init stop "$@"
script_command stop "$@"
}
restart() {
script_init stop "$@"
script_command stop "$@"
script_command start "$@"
}
status() {
script_init status "$@"
ipsec _realsetup status
}
EXTRA_COMMANDS=status
EXTRA_HELP=" status Show the status of the service"

View File

@ -1,16 +1,14 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org # Copyright (C) 2006 OpenWrt.org
START=50
boot() { boot() {
/usr/lib/qos.sh firewall | sh /usr/lib/qos.sh firewall | sh
} }
start() { start() {
# FIXME: after init script migration qos-start
# qos-start
#
boot
} }
stop() { stop() {