Envoi d'un message au serveur via la prise lors du démarrage à l'aide de Upstart
Problème
J'ai besoin d'envoyer un message au serveur via une prise TCP tout en exécutant un ordinateur. Nous utilisons Ubuntu 14.04 et donc par défaut doit être utilisé Upstart Comme initialisation du système. (Nous avons aussi d'autres ordinateurs en cours d'exécution Ubuntu 16.04, qui peut utiliser systemd, J'essaie donc de stocker les scripts shell séparément du fichier d'initialisation du système.)
Solution actuelle
Actuellement, j'utilise deux fichiers pour les clients: Popping File .conf et le fichier de script shell.
Fichier rose
Fichier rose (Appelons ça foo.conf) Il a le contenu suivant:
Coque de fichier
Coque de fichier (Appelons ça foo.sh) Il a le contenu suivant
Symptômes
Lorsque je redémarre l'ordinateur sur lequel ces fichiers ont, je reçois ce qui suit dans le fichier journal:
Cependant, le serveur ne reçoit jamais un message.
Question
Actuellement, cette solution ne fonctionne pas. Je cherche des suggestions sur la manière de faire de cette solution au travail ou à d'autres suggestions pour effectuer la même tâche.
Fichier de mise à jour systemd
Voici les détails du fichier de l'unité de service systemd, que j'ai allumé Ubuntu 16.04. Cela fonctionne avec chaque redémarrage.
J'ai besoin d'envoyer un message au serveur via une prise TCP tout en exécutant un ordinateur. Nous utilisons Ubuntu 14.04 et donc par défaut doit être utilisé Upstart Comme initialisation du système. (Nous avons aussi d'autres ordinateurs en cours d'exécution Ubuntu 16.04, qui peut utiliser systemd, J'essaie donc de stocker les scripts shell séparément du fichier d'initialisation du système.)
Solution actuelle
Actuellement, j'utilise deux fichiers pour les clients: Popping File .conf et le fichier de script shell.
Fichier rose
Fichier rose (Appelons ça foo.conf) Il a le contenu suivant:
#!upstart
description "Send Message on Startup"
start on (local-filesystems
and net-device-up
and runlevel [2345])
exec /opt/foo/foo.sh
Coque de fichier
Coque de fichier (Appelons ça foo.sh) Il a le contenu suivant
#!/bin/bash
echo "Sending update message..."
echo "Message" | nc server-hostname 9999
echo "Completed sending update message."
Symptômes
Lorsque je redémarre l'ordinateur sur lequel ces fichiers ont, je reçois ce qui suit dans le fichier journal:
Sending update message...
Completed sending update message.
Cependant, le serveur ne reçoit jamais un message.
Question
Actuellement, cette solution ne fonctionne pas. Je cherche des suggestions sur la manière de faire de cette solution au travail ou à d'autres suggestions pour effectuer la même tâche.
Fichier de mise à jour systemd
Voici les détails du fichier de l'unité de service systemd, que j'ai allumé Ubuntu 16.04. Cela fonctionne avec chaque redémarrage.
[Unit]
Description=Send Message on Startup
After=network-online.target
[Service]
Type=oneshot
ExecStart=/opt/foo/foo.sh
[Install]
WantedBy=multi-user.target
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
1 réponses
Agathe
Confirmation de:
Voici une autre option pour résoudre ce problème. Fondamentalement, attendez jusqu'à ce qu'il réponde à Ping.