diff --git a/mxservicectl b/mxservicectl index 5541f25..49dacd9 100755 --- a/mxservicectl +++ b/mxservicectl @@ -19,7 +19,14 @@ function mxsrv_start_one() { . ${cfg} - su - ${MX_SRV_USER} -c "${MX_SRV_SCRIPT} start" & + case "${MX_SRV_SCRIPT}" in + *.service) + systemctl start "${MX_SRV_SCRIPT}" + ;; + *) + su - ${MX_SRV_USER} -c "${MX_SRV_SCRIPT} start" & + ;; + esac mv ${cfg}{,.r} @@ -34,7 +41,14 @@ function mxsrv_stop_one() { . ${cfg} - su - ${MX_SRV_USER} -c "${MX_SRV_SCRIPT} stop" & + case "${MX_SRV_SCRIPT}" in + *.service) + systemctl stop "${MX_SRV_SCRIPT}" + ;; + *) + su - ${MX_SRV_USER} -c "${MX_SRV_SCRIPT} stop" & + ;; + esac rm ${cfg} diff --git a/mxstartup-classic.service b/mxstartup-classic.service index b2ba5ca..827854d 100644 --- a/mxstartup-classic.service +++ b/mxstartup-classic.service @@ -1,6 +1,6 @@ [Unit] Description=Mariux mxstartup classic -After=mxstartup-mxvip.service mxmount.service +After=mxstartup-mxvip.service mxmount.service nis.service Requires=mxstartup-mxvip.service mxmount.service [Service] diff --git a/mxstartup-mxvip.service b/mxstartup-mxvip.service index 80d0446..0ccd23e 100644 --- a/mxstartup-mxvip.service +++ b/mxstartup-mxvip.service @@ -10,7 +10,6 @@ ExecStart=/usr/sbin/mxvipctl start ExecStop=/usr/sbin/mxvipctl stop RemainAfterExit=yes StandardOutput=syslog -Restart=always [Install] WantedBy=multi-user.target diff --git a/mxstartup2mxconfig b/mxstartup2mxconfig index 021f915..b1b2010 100755 --- a/mxstartup2mxconfig +++ b/mxstartup2mxconfig @@ -248,27 +248,10 @@ sub print_ips_cfg { ############################################################################## -sub walknetgroup { - my @ng; - - &y(\@ng,@_); - - sub y { - my ($ary,$m)=@_; - $_=`ypmatch $m netgroup 2>/dev/null`; - foreach ( split ) { - if (/\(/) { - s/[\(\),]//g; - push @$ary, $_; - } else { - foreach ( split ) { - &y($ary,$_); - } - } - } - } - - return @ng; +sub hostconfig_list { + my $tag = shift; + $_=`/usr/sbin/hostconfig --list $tag 2>/dev/null`; + return ( split ); } @@ -279,8 +262,9 @@ sub expand_hosts { foreach my $host (@oh) { if($host =~ /^\@(\S+)/) { - push @hosts, walknetgroup($1); - } elsif($host =~ /^(\/\S+)/) { + push @hosts, hostconfig_list($1); + } + elsif ($host =~ /^(\/\S+)/) { next unless(-r $1); push @hosts, expand_hosts(read_file($1)); } else { diff --git a/mxstartupctl b/mxstartupctl index 0b52f0a..8dbaf94 100755 --- a/mxstartupctl +++ b/mxstartupctl @@ -2,13 +2,13 @@ remoteuser=molgen -while ! id ${remoteuser} >/dev/null 2>&1 ; do - echo >&2 "WARNING: Waiting for NIS (failed to resolve remote user ${remoteuser})" - sleep 1 -done case "${1}" in start) + while ! id ${remoteuser} >/dev/null 2>&1 ; do + echo >&2 "WARNING: Waiting for NIS (failed to resolve remote user ${remoteuser})" + sleep 1 + done mxvipctl start $2 mxservicectl start $2 ;;