#!/bin/bash rc.hostname() { hostname "$cfg_hostname"; } rc.services_start() { local service_name start_mode for i in "${cfg_services[@]}"; do unset service_name [[ "$i" =~ ^@ ]] && { service_name="${i##*@}" start_mode='bg' } [[ "$i" =~ ^% ]] && { service_name="${i##*%}" start_mode='watch' } service_name=${service_name:-$i} start_mode="${start_mode:-start}" case "$start_mode" in bg) "${cfg_initscripts_dir}/$service_name" start &;; watch) "${cfg_initscripts_dir}/$service_name" watch &;; start) "${cfg_initscripts_dir}/$service_name" start;; *) echo "Mode $start_mode not supported";; esac done } rc.services_stop() { for i in "${cfg_services[@]}"; do "${cfg_initscripts_dir}/$i" stop done } rc.boot() { rc.hostname rc.modules rc.services_start } rc.shutdown() { rc.services_stop } rc.hostname() { [[ "$cfg_hostname" ]] && { hostname "$cfg_hostname"; } } rc.modules() { for i in "${cfg_modules[@]}"; do modprobe "$i" done } source "/etc/rc.conf" action="$1" action="${action:-boot}" case "$action" in boot) echo "Welcome to `uname -rs`" rc.boot ;; shutdown) rc.shutdown;; esac