Files
webmin/webmin-init

141 lines
3.2 KiB
Bash
Executable File

#!/bin/sh
# chkconfig: 235 99 10
# description: web-based administration interface for Unix systems
#
### BEGIN INIT INFO
# Provides: webmin
# Required-Start: $local_fs $network $syslog
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: web-based administration interface for Unix systems
# Description: Webmin is a web-based interface for system administration
# for Unix. Using Webmin you can configure DNS, Samba, NFS,
# local/remote filesystems and more using your web browser.
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="web-based administration interface for Unix systems"
NAME=Webmin
PIDFILE=/var/webmin/miniserv.pid
SCRIPTNAME=/etc/init.d/webmin
START=/etc/webmin/start-init
STOP=/etc/webmin/stop-init
RELOAD=/etc/webmin/reload-init
FORCERELOAD=/etc/webmin/force-reload-init
LOCKFILE=/var/lock/subsys/webmin
CONFFILE=/etc/webmin/miniserv.conf
# Check if run directly, i.e. /etc/init.d/webmin start
# This is critical to have it resolved correctly
if [ -n "$HOME" ] && [ "$BASH_SUBSHELL" = 0 ]; then
# Check for systemd system
if command -v systemctl >/dev/null 2>&1; then
STARTSYSD=/etc/webmin/start
STOPSYSD=/etc/webmin/stop
RESTARTSYSD=/etc/webmin/restart
RELOADSYSD=/etc/webmin/reload
FORCERELOADSYSD=/etc/webmin/force-reload
WARNSYSD="WARN : [webmin] You are using traditional 'webmin' init script. It is advised to use \`systemctl $1 webmin\` directly."
fi
fi
case "$1" in
start)
if [ -n "$STARTSYSD" ]; then
echo $WARNSYSD
echo "Starting $NAME (via systemctl)"
$STARTSYSD
RETVAL=$?
else
$START
RETVAL=$?
if [ "$RETVAL" = "0" ]; then
touch $LOCKFILE >/dev/null 2>&1
fi
fi
;;
stop)
if [ -n "$STOPSYSD" ]; then
echo $WARNSYSD
echo "Stopping $NAME (via systemctl)"
$STOPSYSD
RETVAL=$?
else
$STOP
RETVAL=$?
if [ "$RETVAL" = "0" ]; then
rm -f $LOCKFILE
pidfile=`grep "^pidfile=" $CONFFILE | sed -e 's/pidfile=//g'`
if [ "$pidfile" = "" ]; then
pidfile=$PIDFILE
fi
rm -f $pidfile
fi
fi
;;
status)
if [ -n "$STARTSYSD" ]; then
echo $WARNSYSD
echo "$NAME status (via systemctl)"
systemctl status webmin
RETVAL=$?
else
pidfile=`grep "^pidfile=" $CONFFILE | sed -e 's/pidfile=//g'`
if [ "$pidfile" = "" ]; then
pidfile=$PIDFILE
fi
if [ -s $pidfile ]; then
pid=`cat $pidfile`
kill -0 $pid >/dev/null 2>&1
if [ "$?" = "0" ]; then
echo "$NAME (pid $pid) is running"
RETVAL=0
else
echo "$NAME is stopped"
RETVAL=1
fi
else
echo "$NAME is stopped"
RETVAL=1
fi
fi
;;
restart)
if [ -n "$RESTARTSYSD" ]; then
echo $WARNSYSD
echo "Restarting $NAME (via systemctl)"
$RESTARTSYSD
else
$STOP ; $START
fi
RETVAL=$?
;;
force-reload)
if [ -n "$FORCERELOADSYSD" ]; then
echo $WARNSYSD
echo "Force restarting $NAME (via systemctl)"
$FORCERELOADSYSD
else
$FORCERELOAD
fi
RETVAL=$?
;;
reload)
if [ -n "$RELOADSYSD" ]; then
echo $WARNSYSD
echo "Reloading $NAME configuration (via systemctl)"
$RELOADSYSD
else
$RELOAD
fi
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|restart|reload|force-reload|status}" >&2
RETVAL=1
;;
esac
exit $RETVAL