如何将正在运行的应用程序中当前消息显示到当前屏幕(TTY 1-6 或 shellinabox,...)

如何将正在运行的应用程序中当前消息显示到当前屏幕(TTY 1-6 或 shellinabox,...)

文件test-screen.sh内容:

#!/usr/bin/env bash

while :
do
date
sleep 1
done

如果我在 TTY1 中运行 test-screen.sh(或自动作为服务启动),那么我想在 TTY3(或 shellinabox)上显示循环消息,我正在观看。怎么做?请帮帮我。

答案1

使用命令识别每个终端

tty

假设您的终端是/dev/tty1/dev/tty3,并且同一个用户在两个终端上登录,那么您可以使用正常的重定向技术,例如

ls > /dev/tty3

将输出重定向到tty3,或者tee将输出重定向到当前终端和另一个终端。

答案2

我找到了这个问题的答案:在 tty1 上运行以下命令:

screen -S test-screen-name test-screen.sh

如果我想在 tty2、shellinabox 上显示这个正在运行的应用程序...我可以运行以下命令:

screen -x -S test-screen-name

但是现在又出现了新的问题:如果我把这个命令设置为服务,并且启用了该服务,那么在开机的时候就会出现错误(如果我在没有服务的情况下运行是正常的,systemctl start auto-oc.service 就会出现这个错误):

● auto-oc.service - auto-oc.service------------------------------
   Loaded: loaded (/etc/systemd/system/auto-oc.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2022-06-17 15:29:38 +07; 2min 4s ago
  Process: 608 ExecStart=/auto-power/bin/auto-oc.sh (code=exited, status=1/FAILURE)
 Main PID: 608 (code=exited, status=1/FAILURE)

Jun 17 15:29:38 rig000 sudo[787]: pam_unix(sudo:session): session closed for user root
Jun 17 15:29:38 rig000 sudo[792]:     root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/bin/nvidia-smi -i 0 -pl 60.00
Jun 17 15:29:38 rig000 sudo[792]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 17 15:29:38 rig000 sudo[792]: pam_unix(sudo:session): session closed for user root
Jun 17 15:29:38 rig000 sudo[794]:     root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/usr/bin/screen -S miner /miners/nbminer/42.2/nbminer -a ethash -o stratum+ssl://asia2.ethermine.org:5555 -o1 stratum+tcp://asia1.ethermine.org:4444 -o2 stratum+tcp://asia2.ethermine.org:14444 -u 0xddA50aE94Dd517423cd29Ec4837c61e9E9A62518.rig000 -u1 0xddA50aE94Dd517423cd29Ec4837c61e9E9A62518.rig000 -u2 0xddA50aE94Dd517423cd29Ec4837c61e9E9A62518.rig000 --mt 1 --fee 1 -log --api 127.0.0.1:22333
Jun 17 15:29:38 rig000 sudo[794]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 17 15:29:38 rig000 auto-oc.sh[608]: Must be connected to a terminal.
Jun 17 15:29:38 rig000 sudo[794]: pam_unix(sudo:session): session closed for user root
Jun 17 15:29:38 rig000 systemd[1]: auto-oc.service: Main process exited, code=exited, status=1/FAILURE
Jun 17 15:29:38 rig000 systemd[1]: auto-oc.service: Failed with result 'exit-code'.

相关内容