168 lines
4.4 KiB
Bash
Executable File
168 lines
4.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
########## ##########
|
|
########## ##########
|
|
## ## ##
|
|
## ##
|
|
## ## - RC BOOT SCRIPTS MANAGER FOR SIMPLE LINUX
|
|
## ## - AUTHOR -- TOLA MIRONCENKO
|
|
## ##
|
|
## ##
|
|
## ##########
|
|
## ##########
|
|
|
|
rootdir=/
|
|
|
|
#----- colors -------
|
|
. $rootdir/usr/lib/init/colors.sh
|
|
#--------------------
|
|
|
|
#------------------------ add to boot function --------------
|
|
add() {
|
|
resultlink=$(cat $rootdir/usr/share/rc/orders | grep $1)
|
|
if [ -f $rootdir/usr/lib/init/services/$1.service ] && [ $resultlink ]; then
|
|
cd $rootdir/etc/rc.d
|
|
ln -sv $rootdir/usr/lib/init/services/$1.service "$resultlink" &> /dev/null
|
|
printf "$BLUE**$GREEN SUCCESS:$BWHITE added $1 to init.\n$RESET"
|
|
else
|
|
help
|
|
fi
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
#--------------------- del from boot function ---------------
|
|
del() {
|
|
filetoremove=$(find $rootdir/etc/rc.d/ | grep $1 )
|
|
if [ $filetoremove ]; then
|
|
rm -v $filetoremove &> /dev/null
|
|
printf "$BLUE**$GREEN SUCCESS:$BWHITE removed $1 from init.\n$RESET"
|
|
else
|
|
help
|
|
fi
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
#---------------------- start daemon function ---------------
|
|
start() {
|
|
if [ -f $rootdir/etc/init.d/$1 ]; then
|
|
$rootdir/etc/init.d/$1 start
|
|
else
|
|
help
|
|
fi
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
#---------------- stop daemon function ----------------------
|
|
stop() {
|
|
if [ -f $rootdir/etc/init.d/$1 ]; then
|
|
$rootdir/etc/init.d/$1 stop
|
|
else
|
|
help
|
|
fi
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
#------------- restart daemon function ----------------------
|
|
restart() {
|
|
if [ -f $rootdir/etc/init.d/$1 ]; then
|
|
$rootdir/etc/init.d/$1 restart
|
|
else
|
|
help
|
|
fi
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
#------------------ list services ---------------------------
|
|
list() {
|
|
ls --color $rootdir/usr/lib/init/services
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
#------------------ list enabled services -------------------
|
|
bootlist() {
|
|
ls --color $rootdir/etc/rc.d
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
#------------------ service status --------------------------
|
|
status() {
|
|
if [[ "$1" == "" ]]; then
|
|
help
|
|
exit 0
|
|
fi
|
|
if [[ "$(ls $rootdir/etc/init.d | grep $1)" == "" ]]; then
|
|
printf "$YELLOW**$BRED error:$RESET can't find service /etc/init.d/$1\n"
|
|
exit 1
|
|
fi
|
|
printf "$YELLOW**$GREEN $1$RESET\n"
|
|
rcdservice=$(ls $rootdir/etc/rc.d | grep $1 2> /dev/null)
|
|
if [[ "$rcdservice" == "" ]]; then
|
|
printf "Loaded:$YELLOW unloaded$RESET (/etc/rc.d)\n"
|
|
else
|
|
printf "Loaded:$GREEN loaded$RESET (/etc/rc.d/$rcdservice)\n"
|
|
fi
|
|
servicepid=$(ls $rootdir/var/run | grep $1)
|
|
if [[ "$servicepid" == "" ]]; then
|
|
printf "Active: deactive (${YELLOW}deactive$RESET)\n"
|
|
else
|
|
printf "Active: active (${GREEN}running$RESET); pid (/var/run/$servicepid)\n"
|
|
fi
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
#-------------- print help function -------------------------
|
|
help() {
|
|
printf "
|
|
$BLUE**$GREEN rc usage$RESET:$BWHITE
|
|
rc add [init.d script name] - add service on boot
|
|
rc del [init.d script name] - delete service from boot
|
|
rc start [init.d script name] - start service
|
|
rc stop [init.d script name] - stop service
|
|
rc restart [init.d script name] - restart service
|
|
rc list - list all services
|
|
rc bootlist - list enabled services
|
|
rc status [init.d script name] - check service status
|
|
|
|
$BLUE**$GREEN examples$RESET:$BWHITE
|
|
rc add httpd
|
|
rc del httpd
|
|
rc start httpd
|
|
rc stop httpd
|
|
rc restart httpd
|
|
rc list
|
|
rc bootlist\n$RESET"
|
|
}
|
|
#------------------------------------------------------------
|
|
|
|
command="$1"
|
|
|
|
case ${command} in
|
|
add)
|
|
add $2 $3
|
|
;;
|
|
del)
|
|
del $2
|
|
;;
|
|
start)
|
|
start $2
|
|
;;
|
|
stop)
|
|
stop $2
|
|
;;
|
|
restart)
|
|
restart $2
|
|
;;
|
|
list)
|
|
list
|
|
;;
|
|
bootlist)
|
|
bootlist
|
|
;;
|
|
status)
|
|
status $2
|
|
;;
|
|
*)
|
|
help
|
|
;;
|
|
esac
|