package/skeleton-init-openrc: add support for starting sysv scripts

Add an OpenRC service that starts and stops sysv-init scripts. We order
that script 'after local' so that it is started after all other native
openrc services.

Signed-off-by: Michał Łyszczek <michal.lyszczek@bofc.pl>
[yann.morin.1998@free.fr:
  - don't propagate the micro optimisation for running .sh scripts
  - use spaces, not TABs
  - stop services in reverse order
  - reword commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Michał Łyszczek 2019-08-04 14:14:15 +02:00 committed by Thomas Petazzoni
parent c7123a3088
commit 162044407b
4 changed files with 32 additions and 2 deletions

View File

@ -542,7 +542,10 @@ different steps of the build process.
sysvinit, etc.), openrc or for the systemd units. These commands sysvinit, etc.), openrc or for the systemd units. These commands
will be run only when the relevant init system is installed (i.e. will be run only when the relevant init system is installed (i.e.
if systemd is selected as the init system in the configuration, if systemd is selected as the init system in the configuration,
only +LIBFOO_INSTALL_INIT_SYSTEMD+ will be run). only +LIBFOO_INSTALL_INIT_SYSTEMD+ will be run). The only exception
is when openrc is chosen as init system and +LIBFOO_INSTALL_INIT_OPENRC+
has not been set, in such situation +LIBFOO_INSTALL_INIT_SYSV+ will
be called, since openrc supports sysv init scripts.
* +LIBFOO_HELP_CMDS+ lists the actions to print the package help, which * +LIBFOO_HELP_CMDS+ lists the actions to print the package help, which
is included to the main +make help+ output. These commands can print is included to the main +make help+ output. These commands can print

25
package/openrc/sysv-rcs Executable file
View File

@ -0,0 +1,25 @@
#!/sbin/openrc-run
description="start or stop sysv rc[S,K] scripts"
depend() {
after local
}
start() {
einfo "Starting sysv rc scripts"
for i in /etc/init.d/S??*; do
# Ignore dangling symlinks (if any).
[ -e "$i" ] || continue
$i start
done
}
stop() {
einfo "Stopping sysv rc scripts"
for i in $(ls -r /etc/init.d/S??*); do
# Ignore dangling symlinks (if any).
[ -e "$i" ] || continue
$i stop
done
}

View File

@ -338,7 +338,8 @@ $(BUILD_DIR)/%/.stamp_target_installed:
$(if $(BR2_INIT_SYSV)$(BR2_INIT_BUSYBOX),\ $(if $(BR2_INIT_SYSV)$(BR2_INIT_BUSYBOX),\
$($(PKG)_INSTALL_INIT_SYSV)) $($(PKG)_INSTALL_INIT_SYSV))
$(if $(BR2_INIT_OPENRC), \ $(if $(BR2_INIT_OPENRC), \
$($(PKG)_INSTALL_INIT_OPENRC)) $(or $($(PKG)_INSTALL_INIT_OPENRC), \
$($(PKG)_INSTALL_INIT_SYSV)))
$(foreach hook,$($(PKG)_POST_INSTALL_TARGET_HOOKS),$(call $(hook))$(sep)) $(foreach hook,$($(PKG)_POST_INSTALL_TARGET_HOOKS),$(call $(hook))$(sep))
$(Q)if test -n "$($(PKG)_CONFIG_SCRIPTS)" ; then \ $(Q)if test -n "$($(PKG)_CONFIG_SCRIPTS)" ; then \
$(RM) -f $(addprefix $(TARGET_DIR)/usr/bin/,$($(PKG)_CONFIG_SCRIPTS)) ; \ $(RM) -f $(addprefix $(TARGET_DIR)/usr/bin/,$($(PKG)_CONFIG_SCRIPTS)) ; \

View File

@ -0,0 +1 @@
/etc/init.d/sysv-rcs