71 lines
1.1 KiB
Bash
Executable File
71 lines
1.1 KiB
Bash
Executable File
#!/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
|