summaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/solaris/buildpkg.sh9
-rwxr-xr-xcontrib/solaris/opensshd.in16
2 files changed, 15 insertions, 10 deletions
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