基于:
终端输出滚动消失(Headless 11.10 服务器,从 10.10 升级)
和
https://superuser.com/questions/1331658/why-cant-i-scroll-in-the-terminal
以及我自己现在的困境。
问题发生之前我做了什么?
tor
我在 VPS 上运行此中继,并使用nyx
tor 监视器对其进行监控。我从家用笔记本电脑连接到此 VPS,运行 Ubuntu 22.04,完全更新版本。
我第一次尝试nohup
对nyx
tor 监视器运行命令。
我只想在nyx
终端断开连接后继续运行(从我本地的 Ubuntu 22.04 笔记本电脑),并能够关闭笔记本电脑,重新打开它,通过 ssh 进入我运行的 VPStor
并从后台nyx
恢复nyx
,而不是在 VPS 登录后打开它。
我运行了nohup nyx &
,然后问题就开始了。我得到了输出nohup
:
rafal@debian:~$ nohup nyx &
[1] 4532
rafal@debian:~$ nohup: ignoring input and appending output to 'nohup.out'
为什么ignoring input
??
我需要输入nyx
密码。我该如何在没有输入或输入被忽略的情况下执行此操作。
我该如何检查是否在nyx
没有密码的情况下启动??我已经输入了密码fg
,现在可以输入nyx
密码了。
所以我输入密码并按下,Enter但什么也没发生。我看不到任何输入。
当我使用jobs
命令时,没有得到任何输出。
怎么了?
- Shift+在命令行上PgUp写入而不是滚动,
2~
- Ctrl++在命令行上写入Shift而不是滚动,↑
A
- 无论我向家用笔记本电脑的终端输入什么命令,它都只显示 24 行:
history
只显示 24 行;cat -n /home/rafal/nohup.out
或者另一个具有长输出的命令,px -aux
只显示 24 行;
- 右侧的滚动条填满了窗口的整个垂直高度,表明没有什么可以滚动回去,而上面实际上有数百行;
- 转动鼠标滚轮会循环显示当前行通过我的命令历史记录(与 UP 键相同)而不是滚动。
gnome_terminal
当然,我的设置中已经设定了 10,000 行。
问题
你能告诉我到底发生了什么、这ignoring input
意味着什么以及为什么nohup
默认忽略输入吗?
rafal@debian:~$ nohup nyx &
[1] 4532
rafal@debian:~$ nohup: ignoring input and appending output to 'nohup.out'
我没用tmux
。
为了重新初始化终端,我曾经reset
修复过这个问题。它确实修复了终端。现在,在我使用px -aux
命令后,我得到了行的全窗口高度,如下所示:
你能向我解释一下吗,我在执行这个命令时哪里做错了nohup nyx &
,为什么它没有按照我期望的方式工作?
答案1
这就是它的nohup
工作原理。它被设计为在后台运行一个进程,与你的 shell 会话分离,不会接受输入,默认情况下会将输出发送到nohup.out
。
但是,您想使用它来运行交互式监视器,因此nohup
它不适合这项工作。只需使用tmux
或screen
即可。nyx
在 tmux/screen 会话中运行,然后您可以关闭终端或笔记本电脑,通过 ssh 返回您的 VPS,再次启动 tmux/screen,然后您就会回到开始的位置。
答案2
这是对@terdon 答案的补充,而不是替代。
大多数终端仿真器都有一个“正常屏幕”和一个“备用屏幕”。后者没有回滚缓冲区,通常由全屏应用程序使用。显然,nyx
这也是一个切换到备用屏幕的应用程序,这就是为什么您无法滚动的原因。
如果您在备用屏幕上,则多个终端(包括您正在使用的 GNOME 终端)会将Shift
+及其朋友(滚动组合键)的键码发送到正在运行的应用程序。PageUp