如果我通过ssh登录到远程主机并运行top,它将获取〜/ .toprc配置文件。我也可以成功运行以下命令
ssh -t <user>@<host> "top -b > top.dat"
但是,这会使ssh会话永远打开。我想使用ssh会话来启动顶级批处理并退出ssh会话。我遇到的问题是我尝试过的所有方法都不起作用或无法使用〜/ .toprc配置文件。
这是我尝试过的:
ssh <user>@<host> "top -b > top.dat &"
ssh -f <user>@<host> "top -b > top.dat"
ssh -f <user>@<host> "nohup top -b > top.dat &"
ssh <user>@<host> "nohup top -b > top.dat &"
ssh -f <user>@<host> "nohup top -b > top.dat"
全部具有不接〜/ .toprc的相同结果
ssh -t <user>@<host> "top -b > top.dat &"
ssh会话关闭(立即)时,顶部退出
ssh -ft <user>@<host> "top -b > top.dat"
ssh -ft <user>@<host> "nohup top -b > top.dat &"
ssh -ft <user>@<host> "nohup top -b > top.dat"
不接收〜/ .toprc并抱怨伪终端将不会被分配,因为stdin不是终端
谁能解释为什么会这样?顶部表示它将读取$ HOME / .toprc。我已经验证在所有这些情况下都设置了$ HOME,并且存在$ HOME / .toprc。这两种导致异步调用无法获取配置文件的方法有何不同?
谢谢。
编辑1
这是我的toprc
top's Config File (Linux processes with windows)
Id:i, Mode_altscr=0, Mode_irixps=1, Delay_time=1.0, Curwin=0
Def fieldscur=�������ķ���&')*+,-./012���������FGHIJKLMN��QRSTUVWXYZ[\]^_`abcdefghij
winflags=193840, sortindx=18, maxtasks=0, graph_cpus=0, graph_mems=0
summclr=1, msgsclr=1, headclr=3, taskclr=1
Job fieldscur=�����(��Ļ�@<��)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=193844, sortindx=0, maxtasks=0, graph_cpus=0, graph_mems=0
summclr=6, msgsclr=6, headclr=7, taskclr=6
Mem fieldscur=���<�����MBN�D34��&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=193844, sortindx=21, maxtasks=0, graph_cpus=0, graph_mems=0
summclr=5, msgsclr=5, headclr=4, taskclr=5
Usr fieldscur=�����������)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
winflags=193844, sortindx=3, maxtasks=0, graph_cpus=0, graph_mems=0
summclr=3, msgsclr=3, headclr=2, taskclr=3
Fixed_widest=0, Summ_mscale=0, Task_mscale=0, Zero_suppress=0
编辑2
抱歉...这两台机器都不是Redhat 7。我正在使用dropbear ssh服务器从Redhat计算机切换到运行yocto-linux的计算机。我也刚刚测试过openssh。yocto配方中的ssh服务器可能是导致此问题的原因。我刚刚对Redhat进行了Redhat测试,并确定它确实可以正常工作。
ssh -ft host -l用户“ nohup top -b> top.out”在debian9主机上运行良好。它读为〜/ .toprc。您的toprc是什么样的?
—
Raouf M. Bencheraiet
@ RaoufM.Bencheraiet刚刚添加了我的toprc文件。请参阅编辑1。我也不应该以root用户身份登录。
—
jesse_partman '18
我没有想问这个问题:如果您正常登录,而不是与top的输出运行top运行'top -b'相比,会发生什么,我认为正在发生的是-b标志禁用了很多东西从顶部输出/输入。
—
Raouf M. Bencheraiet
当我ssh并手动运行命令时,@ RaoufM.Bencheraiet的“ top -b”有效。抱歉,我早些关于Redhat-> Redhat的问题。请参见编辑2
—
jesse_partman