38 lines
1011 B
Bash
38 lines
1011 B
Bash
#!/bin/sh
|
|
|
|
# Get all rc.d scripts
|
|
scripts=$(for rcd in /etc/rc.d; do
|
|
test -d ${rcd} && echo ${rcd}/*;
|
|
done)
|
|
|
|
# Get ordered list using rcorder
|
|
ordered_scripts=$(rcorder -s nostart ${scripts})
|
|
|
|
# Function to check if service is enabled
|
|
is_service_enabled() {
|
|
local script=$1
|
|
local service_name=$(basename "$script")
|
|
|
|
# First check /etc/rc.conf
|
|
if grep -q "^${service_name}=YES" /etc/rc.conf 2>/dev/null; then
|
|
return 0
|
|
fi
|
|
|
|
# Then check /etc/defaults/rc.conf
|
|
if grep -q "^${service_name}=YES" /etc/defaults/rc.conf 2>/dev/null; then
|
|
return 0
|
|
fi
|
|
|
|
return 1
|
|
}
|
|
|
|
# Filter and display enabled services in order
|
|
echo "Enabled services in boot order:"
|
|
echo "------------------------------"
|
|
for script in ${ordered_scripts}; do
|
|
if is_service_enabled "$script"; then
|
|
# Extract PROVIDE line to show service name
|
|
provide=$(grep "^# PROVIDE:" "$script" | cut -d: -f2-)
|
|
echo "$(basename "$script")${provide:+ ($provide)}"
|
|
fi
|
|
done |