8
votes

Pourquoi devrais-je utiliser "Service SSHD Recharger" de préférence à "Service SSHD Redémarrer"?

de mes tests sur Linux, il semble que

service sshd recharge

  • ne fonctionne que lorsque sshd est déjà en cours d'exécution
  • stops sshd si le fichier sshd_config a des problèmes
  • retourne le code d'erreur 0 Même si le fichier sshd_config a des problèmes

    service sshd redémarrez

    • fonctionne, que sshd fonctionne déjà
    • stops sshd si le fichier sshd_config a une syntaxe invalide ou d'autres problèmes
    • renvoie le code d'erreur non zéro si le fichier sshd_config a des problèmes

      Je comprends qu'ils effectuent des opérations différentes, mais il me semble que je ne sais pas que je devrais toujours utiliser service sshd redémarrant . Y a-t-il des raisons pour lesquelles service sshd recharge est préférable dans certaines situations?


0 commentaires

4 Réponses :


4
votes

Lorsque vous exécutez la commande service sshd em> où opt em> pourrait être rechargée / redémarrage, il exécute réellement un programme avec un environnement modifié comme celui-ci:

    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
    }


2 commentaires

C'est une information utile, mais pourquoi j'utiliserais jamais recharger? De plus, vous avez dit que la recharge fonctionne, que SSHD soit déjà en cours d'exécution, mais il ne peut pas envoyer de signal au SSHD si SSHD ne fonctionne pas.


recharge ne déposera pas les connexions existantes



0
votes

juste pour mentionner: Comme dans les exemples ci-dessus, les gens sont utilisés SSHD, que c'est le démon, le service est SSH. La bonne ligne devrait être:

service ssh reload


1 commentaires

Cela dépend entièrement de la distribution que vous utilisez.



-1
votes

Je pense que ce "rechargement" pourrait être utilisé dans un script shell pour des services multi-services pour récupérer au statut initial, dans ce cas, nous ne savions pas si un service est en cours d'exécution ou non, nous laissons donc tous ces services "recharger ".

Si nous utilisons "redémarrage" dans ce cas, certains de ces services que nous n'avions pas utilisés commenceront.

Habituellement pour les problèmes de débogage (ou la modification) sur un seul service, nous souhaitons que ce service comme "sshd" commence, "redémarrer" devrait être meilleur pour nous n'avons pas besoin de vérifier si ce service est exécuté avec succès ou non.


5 commentaires

Cette réponse n'a pas vraiment de sens. La question concerne le SSHD, pas des services aléatoires qui exécutent sauvage dans votre imagination.


Cette question semble sur "sshd", mais elle pose en fait une différence entre "recharger" et "redémarrer", pas la différence entre "sshd" et "ssh", donc quelle est la bonne réponse à cette question?


Il s'agit donc d'une question sur un service spécial, mais la réponse pourrait être généralement utilisée dans tous les services.


Pas vraiment, parce que votre réponse n'a aucun sens dans le contexte d'un seul service - en particulier SSHD. "Certains de ces services que nous n'avons pas utilisés?" Il n'y en a pas - sshd est le seul. Les scripts Shell pour "Multi Services" n'ont aucun sens dans le contexte de la question.


Les questions posent des questions lorsque nous pourrions utiliser "recharger" mieux que "redémarrer". Je listerai donc une utilisation possible dans "Multi Services" à titre d'exemple. C'est ma compréhension de cette question. Nous avons donc une compréhension différente pour cette question. Et pour être honnête, je ne comprends pas quelle est votre compréhension de cette question, ma réponse basée sur ma compréhension, cela ne pourrait rien dire pour vous, peut-être que quelqu'un d'autre pourrait comprendre. Mais quelle est votre compréhension de cette question et avez-vous une réponse?



1
votes

Certaines applications, y compris plusieurs serveurs Web, support de rechargement de leur configuration sans redémarrer du tout. Dans ce cas, recharge serait le meilleur moyen de les signaler à le faire.

En tant que cas d'utilisation, ce serait génial si sshd effectivement était prise en charge de la configuration sans affecter les connexions existantes. Cela permettrait de vérifier la nouvelle configuration sans perdre la connexion SSH actuelle (par exemple lors de la modification des autorisations, afin de vous assurer que vous pouvez toujours vous connecter).

lecture supplémentaire: Liste de tous les SystemD Actions de l'unité < / a>


1 commentaires

Mais rechargement _is _ pris en charge. Je viens de le faire sur une connexion SSH.