Le récent Upstart a ces nouvelles fonctionnalités fantaisistes de type systemd qui permettent de démarrer les travaux sur une connexion entrante via un pont socket. J'aimerais lancer mon sshd à la première connexion au port 22.
Je l'ai maintenant : start on socket PROTO=inet PORT=22
dans mon ssh.conf et j'ai les jobs upstart-socket-bridge et upstart-udev-bridge en cours d'exécution.
La tâche ssh démarre correctement lorsque je me connecte à ma boîte sur le port 22 mais sshd ne me répond pas. C'est comme s'il ne le recevait pas et ne pouvait pas l'accepter. Réessayer de se connecter n'aide pas, même sshd est maintenant en cours d'exécution et devrait accepter les connexions normalement. Upstart est toujours en train de s'en occuper !
Pages de manuel sur les événements de sockets dites :
Lorsqu'une connexion entrante est détectée, le descripteur de fichier représentant la socket est passé au job en question pour lui permettre de accepter(2) la connexion. De plus, la variable d'environnement UPSTART_JOB contiendra le nom de l'événement ("socket") et la balise variable d'environnement UPSTART_FDS contient le numéro du descripteur de fichier descripteur de fichier correspondant à la socket en écoute.
Cela signifie-t-il que pour en tirer parti, ssh a besoin d'un support spécifique pour passer le FD de la socket ? Si c'est le cas, cela gâche un peu tout le plaisir :/.