Quelqu'un peut-il savoir s'il est possible d'imprimer deux commandes code> echo code> d'un script sur le même terminal? Le problème est que le script qui devrait imprimer sur le terminal est automatiquement exécuté par un service J'ai déjà découvert qu'il est possible d'ouvrir un terminal et de le laisser exécuter des commandes comme ceci: p>
Cependant, cela ouvrira un nouveau terminal pour chaque commande et je le souhaite que tous sont exécutés dans le même terminal. P>
genre Cordialement
Pepsilon p> SystemD code>. P>
konsole -e
3 Réponses :
Le problème est que le script qui devrait imprimer sur le terminal est automatiquement exécuté par un service SystemD. P> blockQuote>
... et, à cause de cela, il n'y a pas de terminal associé: généralement, les services système écrivent à des fichiers journaux et non terminaux. P>
Mais, vous pouvez rediriger des échos à la console (/ dev / console), qui est destiné à être le seul terminal "toujours présent". Sinon, vous pouvez rediriger vers n'importe quel terminal que vous connaissez est là - je veux dire des choses telles / dev / ttys0 ou similaires, si vous savez ce que vous faites (et votre script a la permission de le faire). Dans un environnement graphique, il peut y avoir n'importe quoi, par exemple mon système compte environ 4 terminaux de texte pouvant être visualisés en appuyant sur Ctrl-Alt-F1 / 2/3 et ainsi de suite. P>
mettre un côté la question sur la manière de gérer les situations lorsqu'il n'y a pas de session de terminal / x qui peut être utilisé pour capturer le journal. Ceux-ci peuvent être traités en testant la disponibilité x / terminal et en retomprant le fichier journal. P>
Chaque terminal est connecté à une pseudo-terminale unique (PTY), généralement / dev / pts / 0, / dev / pts / 1, ... ,. Tout ce qui est envoyé à la PTY sera affiché sur le terminal (Konsole, Gnome-Terminal, Xterm, ...). P>
Vous pouvez construire une solution en utilisant ce qui suit p>
konsole -e '(tty; echo $$)> / tmp / actif_tty; tandis que vrai; dormir 600; Date ; fait '& code>. li>
- forçant efficacement le terminal pour rester jusqu'à fermé / tué. Li>
- Le fichier capturera TTY nom et PID LI>
- peut utiliser Gnome-Terminal, Xterm, ... Li>
ul> li>
- Chaque processus qui souhaite envoyer une sortie à la borne de journalisation "actuelle" doit rediriger stdout et / ou stardr sur celui nommé dans le fichier:
-
exécuté> $ (tête -1 / tmp / actif_tty) 2> & 1 code> ou similaire li>
ul> li>
ul>
La ligne PID peut être utilisée pour implémenter un chèque si le terminal PID est toujours en marche, si nécessaire. P>
Je propose à l'aide d'un tuyau nommé créé avec Je m'aidais avec mktemp code> dans l'espace des fichiers temporaires. Notez que
mktemp -u code> est légèrement dangereux.
queue -f code>: p>
peut-être rediriger vers le
tty code>. Comme
echo bonjour> $ (tty) code>. Suggestion non testée
Mettez ce dont vous avez besoin dans un script et l'utilisation
Konsole -E / chemin de chemin / à / myscript code>? Ou peut-être que vous pouvez l'aligner avec
konsole -e 'echo un; echo deux ' code>? Bonne chance.