文件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'.