From 54c276fb9ed15ce711c506af9b8477589c3380e5 Mon Sep 17 00:00:00 2001 From: fbt Date: Mon, 24 Feb 2014 11:20:05 +0400 Subject: [PATCH] background start --- bin/rc | 15 ++++++++++++++- etc/rc.conf | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/bin/rc b/bin/rc index 6e19ef6..ef7db82 100755 --- a/bin/rc +++ b/bin/rc @@ -3,8 +3,21 @@ rc.hostname() { hostname "$cfg_hostname"; } rc.services() { + local service_name bg_start + for i in "${cfg_services[@]}"; do - "${cfg_initscripts_dir}/$i" "$1" + [[ "$i" =~ ^@ ]] && { + service_name="${i##*@}" + bg_start='1' + } || { + service_name="$i" + } + + [[ "$bg_start" ]] && { + "${cfg_initscripts_dir}/$i" "$1" & true + } || { + "${cfg_initscripts_dir}/$i" "$1" + } done } diff --git a/etc/rc.conf b/etc/rc.conf index 9a82ee2..410d124 100644 --- a/etc/rc.conf +++ b/etc/rc.conf @@ -4,5 +4,5 @@ export PATH='/usr/local/bin:/usr/bin' cfg_initscripts_dir='/etc/rc.d' cfg_hostname='generic' -cfg_services=( 'fsck' 'udev' 'mount' 'syslog-ng' 'crond' 'network' 'dhcpcd' 'sshd' 'rc.local' ) +cfg_services=( 'fsck' 'udev' 'mount' 'syslog-ng' 'crond' 'network' 'dhcpcd' '@sshd' 'rc.local' ) # cfg_modules=()