From f2366b5a7d3cc9f7ad4dc6b89e30853b474bccec Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Fri, 19 Oct 2001 20:36:23 +0000 Subject: - (bal) Fixed up init.d symlink issue and piddir stuff. Patches by Zoran Milojevic and j.petersen@msh.de --- contrib/solaris/buildpkg.sh | 9 ++++++--- contrib/solaris/opensshd.in | 16 +++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) (limited to 'contrib/solaris') diff --git a/contrib/solaris/buildpkg.sh b/contrib/solaris/buildpkg.sh index a71417075..05abb2236 100755 --- a/contrib/solaris/buildpkg.sh +++ b/contrib/solaris/buildpkg.sh @@ -24,6 +24,7 @@ make install-nokeys DESTDIR=$FAKE_ROOT ## Fill in some details, like prefix and sysconfdir ETCDIR=`grep "^sysconfdir=" Makefile | sed 's/sysconfdir=//'` PREFIX=`grep "^prefix=" Makefile | cut -d = -f 2` +PIDDIR=`grep "^piddir=" Makefile | cut -d = -f 2` cd $FAKE_ROOT ## Setup our run level stuff while we are at it. @@ -37,12 +38,14 @@ mkdir -p $FAKE_ROOT/etc/rc2.d ## setup our initscript correctly sed -e "s#%%configDir%%#$ETCDIR#g" \ -e "s#%%openSSHDir%%#$PREFIX#g" \ + -e "s#%%pidDir%%#$PIDDIR#g" \ ../opensshd.in > $FAKE_ROOT/etc/init.d/opensshd chmod 711 $FAKE_ROOT/etc/init.d/opensshd -ln -s $FAKE_ROOT/etc/init.d/opensshd $FAKE_ROOT/etc/rcS.d/K30opensshd -ln -s $FAKE_ROOT/etc/init.d/opensshd $FAKE_ROOT/etc/rc1.d/K30opensshd -ln -s $FAKE_ROOT/etc/init.d/opensshd $FAKE_ROOT/etc/rc2.d/S98opensshd +ln -s ../init.d/opensshd $FAKE_ROOT/etc/rcS.d/K30opensshd +ln -s ../init.d/opensshd $FAKE_ROOT/etc/rc0.d/K30opensshd +ln -s ../init.d/opensshd $FAKE_ROOT/etc/rc1.d/K30opensshd +ln -s ../init.d/opensshd $FAKE_ROOT/etc/rc2.d/S98opensshd ## Ok, this is outright wrong, but it will work. I'm tired of pkgmk diff --git a/contrib/solaris/opensshd.in b/contrib/solaris/opensshd.in index d1d573eb8..212254dc8 100755 --- a/contrib/solaris/opensshd.in +++ b/contrib/solaris/opensshd.in @@ -5,14 +5,16 @@ AWK=/usr/bin/awk CAT=/usr/bin/cat -EGREP=/usr/bin/egrep KILL=/usr/bin/kill PS=/usr/bin/ps +XARGS=/usr/bin/xargs prefix=%%openSSHDir%% etcdir=%%configDir%% +piddir=%%pidDir%% SSHD=$prefix/sbin/sshd +PIDFILE=$piddir/sshd.pid SSH_KEYGEN=$prefix/bin/ssh-keygen HOST_KEY_RSA1=$etcdir/ssh_host_key HOST_KEY_DSA=$etcdir/ssh_host_dsa_key @@ -21,28 +23,28 @@ HOST_KEY_RSA=$etcdir/ssh_host_rsa_key killproc() { _procname=$1 _signal=$2 - ${PGREP} ${_procname} | ${HEAD} -1 | ${XARGS} -t -I {} ${KILL} -${_signal} {} + ${PS} -u root | ${AWK} '/'"$_procname"'$/ {print $1}' | ${XARGS} ${KILL} } checkkeys() { if [ ! -f $HOST_KEY_RSA1 ]; then - $SSH_KEYGEN -t rsa1 -f $HOST_KEY_RSA1 -N "" + ${SSH_KEYGEN} -t rsa1 -f ${HOST_KEY_RSA1} -N "" fi if [ ! -f $HOST_KEY_DSA ]; then - $SSH_KEYGEN -t dsa -f $HOST_KEY_DSA -N "" + ${SSH_KEYGEN} -t dsa -f ${HOST_KEY_DSA} -N "" fi if [ ! -f $HOST_KEY_RSA ]; then - $SSH_KEYGEN -t rsa -f $HOST_KEY_RSA -N "" + ${SSH_KEYGEN} -t rsa -f ${HOST_KEY_RSA} -N "" fi } stop_service() { if [ -r $PIDFILE -a ! -z ${PIDFILE} ]; then - PID=`cat ${PIDFILE}` + PID=`${CAT} ${PIDFILE}` fi if [ ${PID:=0} -gt 1 -a ! "X$PID" = "X " ]; then - $KILL $PID + ${KILL} ${PID} else echo "Unable to read PID file, killing using alternate method" killproc sshd TERM -- cgit v1.2.3