diff options
Diffstat (limited to 'V0_8_1mdk/add-service')
-rwxr-xr-x | V0_8_1mdk/add-service | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/V0_8_1mdk/add-service b/V0_8_1mdk/add-service new file mode 100755 index 0000000..8901ef0 --- /dev/null +++ b/V0_8_1mdk/add-service @@ -0,0 +1,68 @@ +#!/bin/sh +#--------------------------------------------------------------- +# Project : Mandrake Linux +# Module : rpm-helper +# File : add-service +# Version : $Id$ +# Author : Frederic Lepied +# Created On : Mon Jul 8 08:14:34 2002 +# Purpose : helper script for rpm scriptlets to add a +# service. +#--------------------------------------------------------------- + +if [ $# != 3 ]; then + echo "usage: $0 <pkg name> <number installed> <service name>" 1>&2 + exit 1 +fi + +pkg=$1 # name of the package +num=$2 # number of packages installed +srv=$3 # name of the service + +if [ $num = 1 ]; then + # Install mode: add the services + if [ -r /etc/sysconfig/msec ]; then + . /etc/sysconfig/msec + fi + if [[ -n "$SECURE_LEVEL" ]] && [[ "$SECURE_LEVEL" -gt 3 ]]; then + # High security: add only authorized services + LIST=/etc/security/msec/server + # during the install the symlink isn't done so find the right file + # by ourseleves + if [ -n "$DURING_INSTALL" -a ! -f $LIST ]; then + LIST=/etc/security/msec/server.$SECURE_LEVEL + fi + if [ -f $LIST ]; then + if grep -q "^${srv}$" $LIST ; then + /sbin/chkconfig --add $srv + fi + else + # do an exception for initscripts services that could be installed + # before msec and should anyway be added + if [ $pkg = initscripts ]; then + /sbin/chkconfig --add $srv + else + echo "add-service: $srv not added because /etc/security/msec/server is not present." 1>&2 + echo "You should run msec to correct that." 1>&2 + fi + fi + else + # Low security: install all the services + /sbin/chkconfig --add $srv + fi +else + # Upgrade mode: restart the service if already running + if [ -f /var/lock/subsys/$srv ]; then + /sbin/service $srv restart > /dev/null 2>/dev/null || : + # restart services that depend of portmap + if [ $srv = portmap ]; then + for s in amd autofs bootparamd clusternfs mcserv nfs nfslock ypserv ypbind yppasswdd ypxfrd; do + if [ -f /var/lock/subsys/$s ]; then + /sbin/service $s restart > /dev/null 2>/dev/null || : + fi + done + fi + fi +fi + +# add-service ends here |