Wenn Sie den Dienst sshd Befehl ausführen, wo opt neu geladen werden könnte/Neustart läuft es tatsächlich ein Programm mit einer veränderten Umgebung wie folgt aus:
env -i PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
zB:
env -i PATH=/sbin:/usr/sbin:/bin:/usr/bin TERM=xterm /etc/init.d/sshd reload
Der Befehl sshd führt in beiden Fällen (Neustart/Neuladen) fast dasselbe aus:
reload: Versucht, den Prozess zu beenden, der ein HUP-Signal sendet, und wie Sie auf dem Snipet sehen können, benötigt es die PID des Prozesses, um es zu tun. (Funktioniert unabhängig davon, ob sshd bereits läuft)
reload()
{
echo -n $"Reloading $prog: "
if [ -n "`pidfileofproc $SSHD`" ] ; then
killproc $SSHD -HUP
else
failure $"Reloading $prog"
fi
RETVAL=$?
echo
}
Neustart: Es würde nur tun das gleiche wie wenn Sie eine Stop- auszuführen waren> starten.
restart() {
stop
start
}
start()
{
[ -x $SSHD ] || exit 5
[ -f /etc/ssh/sshd_config ] || exit 6
# Create keys if necessary
if [ "x${AUTOCREATE_SERVER_KEYS}" != xNO ]; then
do_rsa1_keygen
do_rsa_keygen
do_dsa_keygen
fi
echo -n $"Starting $prog: "
$SSHD $OPTIONS && success || failure
RETVAL=$?
[ $RETVAL -eq 0 ] && touch $lockfile
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
if [ -n "`pidfileofproc $SSHD`" ] ; then
killproc $SSHD
else
failure $"Stopping $prog"
fi
RETVAL=$?
# if we are in halt or reboot runlevel kill all running sessions
# so the TCP connections are closed cleanly
if [ "x$runlevel" = x0 -o "x$runlevel" = x6 ] ; then
trap '' TERM
killall $prog 2>/dev/null
trap TERM
fi
[ $RETVAL -eq 0 ] && rm -f $lockfile
echo
}
, die nützlichen Informationen sind, aber warum sollte ich jemals nachladen benutzen? Sie haben auch gesagt, dass das erneute Laden funktioniert, unabhängig davon, ob sshd bereits läuft, aber es kann kein Signal an das sshd senden, wenn sshd nicht läuft. –