Attendre jusqu'à ce que le service démarre en bash script
J'ai un bash script qui lance un service en arrière-plan. Après ce service démarre correctement, il imprime "le Serveur est actif" à la sortie standard (stdout). J'ai besoin d'attendre jusqu'à ce que cette chaîne s'affiche, puis poursuivre l'exécution de mon script. Comment puis-je y parvenir?
Ne pas le faire. Rendre votre script d'un service lui-même. Ensuite, cela peut dépendre de si vous utilisez
Ou même simplement faire un fichier de verrouillage lorsqu'il démarre, ou vérifier pid, ou quelque chose d'autre, pas de raison de capture
systemd
ou tout simplement l'initialisation SysV....Ou même simplement faire un fichier de verrouillage lorsqu'il démarre, ou vérifier pid, ou quelque chose d'autre, pas de raison de capture
stdout
ici.OriginalL'auteur Dmitry Stril | 2014-01-31
Vous devez vous connecter pour publier un commentaire.
Je voudrais faire de cette façon.
Ici
-m1
ditgrep(1)
pour sortir à la première rencontre.Je veryfied ma réponse avec mon jouet "service" ci-dessous:
Si vous remplacez
echo Continue
avececho Continue; sleep 1; ls /tmp/server-msg.txt
, vous verrezls: cannot access /tmp/server-output.txt: No such file or directory
qui prouve la "Continuer" d'action a été déclenchée juste après la sortie deServer is active
.OriginalL'auteur nodakai
Pour moi de lire service d'état à
service
application:et il peut être fait avec le code:
OriginalL'auteur Малъ Скрылевъ
Demandez-vous rediriger stderr vers stdout?
OriginalL'auteur BMW