You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
4.3 KiB
124 lines
4.3 KiB
#!@l_prefix@/bin/openpkg rc |
|
## |
|
## rc.heimdal -- Run-Commands |
|
## |
|
|
|
%config |
|
heimdal_enable="$openpkg_rc_def" |
|
heimdal_daemons="kdc kadmind kpasswdd" |
|
heimdal_flags_kdc="" |
|
heimdal_flags_kadmind="" |
|
heimdal_flags_kpasswdd="" |
|
heimdal_flags_ipropd_master="" |
|
heimdal_flags_ipropd_slave="" |
|
heimdal_log_prolog="true" |
|
heimdal_log_epilog="true" |
|
heimdal_log_numfiles="10" |
|
heimdal_log_minsize="1M" |
|
heimdal_log_complevel="9" |
|
|
|
%common |
|
heimdal_logdir="@l_prefix@/var/heimdal/log" |
|
heimdal_pidfile_kdc="@l_prefix@/var/heimdal/run/kdc.pid" |
|
heimdal_pidfile_kadmind="@l_prefix@/var/heimdal/run/kadmind.pid" |
|
heimdal_pidfile_kpasswdd="@l_prefix@/var/heimdal/run/kpasswdd.pid" |
|
heimdal_pidfile_ipropd_master="@l_prefix@/var/heimdal/run/ipropd-master.pid" |
|
heimdal_pidfile_ipropd_slave="@l_prefix@/var/heimdal/run/ipropd-slave.pid" |
|
heimdal_signal () { |
|
[ -f $heimdal_pidfile_kdc ] \ |
|
&& kill -$1 `cat $heimdal_pidfile_kdc` |
|
local rc_heimdal_kdc=$? |
|
[ -f $heimdal_pidfile_kadmind ] \ |
|
&& kill -$1 `cat $heimdal_pidfile_kadmind` |
|
local rc_heimdal_kadmind=$? |
|
[ -f $heimdal_pidfile_kpasswdd ] \ |
|
&& kill -$1 `cat $heimdal_pidfile_kpasswdd` |
|
local rc_heimdal_kpasswdd=$? |
|
[ -f $heimdal_pidfile_ipropd_master ] \ |
|
&& kill -$1 `cat $heimdal_pidfile_ipropd_master` |
|
local rc_heimdal_ipropd_master=$? |
|
[ -f $heimdal_pidfile_ipropd_slave ] \ |
|
&& kill -$1 `cat $heimdal_pidfile_ipropd_slave` |
|
local rc_heimdal_ipropd_slave=$? |
|
[ $rc_heimdal_kdc -eq 0 -o \ |
|
$rc_heimdal_kadmind -eq 0 -o \ |
|
$rc_heimdal_kpasswdd -eq 0 -o \ |
|
$rc_heimdal_ipropd_master -eq 0 -o \ |
|
$rc_heimdal_ipropd_slave -eq 0 ] |
|
} |
|
|
|
%status -u @l_susr@ -o |
|
heimdal_usable="no" |
|
heimdal_active="no" |
|
rcService heimdal enable yes && \ |
|
heimdal_signal 0 && heimdal_active="yes" |
|
echo "heimdal_enable=\"$heimdal_enable\"" |
|
echo "heimdal_usable=\"$heimdal_usable\"" |
|
echo "heimdal_active=\"$heimdal_active\"" |
|
|
|
%start -u @l_susr@ |
|
rcService heimdal enable yes || exit 0 |
|
rcService heimdal active yes && exit 0 |
|
for daemon in $heimdal_daemons; do |
|
case "$daemon" in |
|
kdc ) |
|
nohup @l_prefix@/sbin/kdc $heimdal_flags_kdc & |
|
echo $! >$heimdal_pidfile_kdc |
|
;; |
|
kadmind ) |
|
nohup @l_prefix@/sbin/kadmind $heimdal_flags_kadmind & |
|
echo $! >$heimdal_pidfile_kadmind |
|
;; |
|
kpasswdd ) |
|
nohup @l_prefix@/sbin/kpasswdd $heimdal_flags_kpasswdd & |
|
echo $! >$heimdal_pidfile_kpasswdd |
|
;; |
|
ipropd-master ) |
|
nohup @l_prefix@/sbin/ipropd-master $heimdal_flags_ipropd_master & |
|
echo $! >$heimdal_pidfile_ipropd_master |
|
;; |
|
ipropd-slave ) |
|
nohup @l_prefix@/sbin/ipropd-slave $heimdal_flags_ipropd_slave \ |
|
`cat @l_prefix@/etc/heimdal/ipropd.master` & |
|
echo $! >$heimdal_pidfile_ipropd_slave |
|
;; |
|
esac |
|
done |
|
|
|
%stop -u @l_susr@ |
|
rcService heimdal enable yes || exit 0 |
|
rcService heimdal active no && exit 0 |
|
heimdal_signal TERM |
|
sleep 5 |
|
rm -f $heimdal_pidfile_kdc 2>/dev/null || true |
|
rm -f $heimdal_pidfile_kadmind 2>/dev/null || true |
|
rm -f $heimdal_pidfile_kpasswdd 2>/dev/null || true |
|
rm -f $heimdal_pidfile_ipropd_master 2>/dev/null || true |
|
rm -f $heimdal_pidfile_ipropd_slave 2>/dev/null || true |
|
|
|
%restart -u @l_susr@ |
|
rcService heimdal enable yes || exit 0 |
|
rcService heimdal active no && exit 0 |
|
rc heimdal stop |
|
sleep 2 |
|
rc heimdal start |
|
|
|
%daily -u @l_susr@ |
|
rcService heimdal enable yes || exit 0 |
|
rcTmp -i |
|
hintfile=`rcTmp -f -n hint` |
|
for daemon in $heimdal_daemons; do |
|
if [ -f $heimdal_logdir/$daemon.log ]; then |
|
shtool rotate -f \ |
|
-n $heimdal_log_numfiles -s $heimdal_log_minsize -d \ |
|
-z $heimdal_log_complevel -m 664 -o @l_rusr@ -g @l_rgrp@ \ |
|
-P "$heimdal_log_prolog" \ |
|
-E "$heimdal_log_epilog; echo 1 >$hintfile" \ |
|
$heimdal_logdir/$daemon.log |
|
fi |
|
done |
|
if [ -s $hintfile ]; then |
|
rc heimdal restart |
|
fi |
|
rcTmp -k |
|
|
|
|