mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Make ipactl a lot smarter and have it manage named as well.
ticket 138
This commit is contained in:
@@ -21,40 +21,85 @@
|
|||||||
# proper order
|
# proper order
|
||||||
#
|
#
|
||||||
|
|
||||||
function start() {
|
# Set IFS so we can do space-embedded lists of services
|
||||||
/sbin/service dirsrv start
|
IFS=";"
|
||||||
/sbin/service ntpd start
|
|
||||||
/sbin/service krb5kdc start
|
|
||||||
/sbin/service ipa_kpasswd start
|
|
||||||
/sbin/service httpd start
|
|
||||||
|
|
||||||
if [ -e /var/lib/pki-ca ]; then
|
# start and stop are basically a reverse of each other
|
||||||
/sbin/service pki-cad start
|
services_stop="ipa_kpasswd;httpd;krb5kdc;dirsrv;ntpd;named;pki-cad pki-ca"
|
||||||
|
services_start="dirsrv;ntpd;named;krb5kdc;ipa_kpasswd;httpd;pki-cad pki-ca"
|
||||||
|
|
||||||
|
function is_running() {
|
||||||
|
# $1 = service to check on
|
||||||
|
# $2 = optional instance to check on, for dirsrv and pki-cad
|
||||||
|
|
||||||
|
# Returns
|
||||||
|
# 0 - running
|
||||||
|
# 1 - pid but dead service
|
||||||
|
# 2 - dead but locked subsys
|
||||||
|
# 3 - stopped
|
||||||
|
# 4 - no such service
|
||||||
|
if [ "$#" = 2 ] ; then
|
||||||
|
/sbin/service $1 status $2 > /dev/null 2>&1
|
||||||
|
else
|
||||||
|
out=`/sbin/service $1 status 2>&1`
|
||||||
fi
|
fi
|
||||||
|
case "$?" in
|
||||||
|
0)
|
||||||
|
return 0;;
|
||||||
|
1)
|
||||||
|
x=`echo $out | grep -c exists`
|
||||||
|
if [ $x -eq 1 ] ; then
|
||||||
|
return 1
|
||||||
|
else
|
||||||
|
return 4
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
return 2;;
|
||||||
|
3)
|
||||||
|
return 3;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
function start() {
|
||||||
|
for service in $services_start ; do
|
||||||
|
is_running $service
|
||||||
|
case "$?" in
|
||||||
|
0) # running
|
||||||
|
;;
|
||||||
|
4) # no such service
|
||||||
|
;;
|
||||||
|
*) # otherwise not running
|
||||||
|
/sbin/service $service start
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function stop() {
|
function stop() {
|
||||||
/sbin/service ipa_kpasswd stop
|
for service in $services_stop ; do
|
||||||
/sbin/service httpd stop
|
is_running $service
|
||||||
/sbin/service krb5kdc stop
|
case "$?" in
|
||||||
/sbin/service dirsrv stop
|
0) # running
|
||||||
/sbin/service ntpd stop
|
/sbin/service $service stop
|
||||||
|
;;
|
||||||
if [ -e /var/lib/pki-ca ]; then
|
*) # otherwise not running or doesn't exist
|
||||||
/sbin/service pki-cad stop
|
;;
|
||||||
fi
|
esac
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function status() {
|
function status() {
|
||||||
/sbin/service ipa_kpasswd status
|
for service in $services_start ; do
|
||||||
/sbin/service httpd status
|
is_running $service
|
||||||
/sbin/service krb5kdc status
|
case "$?" in
|
||||||
/sbin/service dirsrv status
|
4)
|
||||||
/sbin/service ntpd status
|
;;
|
||||||
|
*)
|
||||||
if [ -e /var/lib/pki-ca ]; then
|
/sbin/service $service status
|
||||||
/sbin/service pki-cad status
|
;;
|
||||||
fi
|
esac
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
|
|||||||
Reference in New Issue
Block a user