有人碰巧知道是否可以打印两个 echo
脚本命令到同一个终端?问题是应该打印到终端的脚本由 systemd service
自动执行。 .
我已经发现可以打开终端并让它执行如下命令:
konsole -e <strong>command</strong>
但是,这将为每个命令打开一个新终端,我希望它们都在同一个终端中执行。
亲切的问候 百事可乐
最佳答案
抛开当没有可用于捕获日志的终端/X session 时如何处理情况的问题。这些可以通过测试 X/终端可用性并回退到日志文件来解决。
每个终端都连接到唯一的伪终端 (PTY),通常是/dev/pts/0,/dev/pts/1, ..., 。发送到 PTY 的任何内容都将显示在终端上(konsole、gnome-terminal、xterm 等)。
您可以使用以下内容构建解决方案
- 使用以下命令启动终端:
konsole -e '(tty ; echo $$) >/tmp/active_tty ;虽然是真的;睡 600 分钟;日期 ;完成' &
.- 有效地迫使终端保持运行直到关闭/被杀死。
- 该文件将捕获 tty 名称和 PID
- 可以使用 gnome-terminal, xterm, ...
- 每个想要将输出发送到“当前”日志终端的进程都应该将 stdout 和/或 stderr 重定向到文件中指定的那个:
exec > $(head -1/tmp/active_tty) 2>&1
或类似的
如果需要,PID 线可用于检查终端 PID 是否仍在运行。
关于linux - 打印输出到终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58611341/