ssh并执行交互式命令


2

我目前有一个进程,我登录到一台机器,需要到ssh另一台机器,然后运行一个交互式作业的命令(在队列系统上)。有没有办法一次性完成这一切?

马上:

ssh my_machine
srun --pty R

我会这样做:

ssh my_machine "srun --pty R"

但是这会返回一些错误:

 stty: standard input: Invalid argument
 srun: error: Not using a pseudo-terminal, disregarding --pty option

Answers:


2

您需要为srun命令的ssh会话分配一个伪tty 。

尝试这个:

ssh -t my_machine "srun --pty r"

你能解释一下伪tty是什么吗?
Alex

tty是终端的缩写。在当天,终端本质上是一个带有键盘的监视器,通过串行连接与服务器进行交互。发明了伪tty,以便为远程连接的工作站提供相同的功能。基本上,您在现代系统中与shell进行的任何交互都是通过伪tty完成的。默认情况下,通过ssh连接运行远程命令不会分配伪tty,因此-t添加了交换机以强制它。
乔尔·泰勒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.