我想通过 登录后运行一些启动命令mosh。对于ssh,我会这样做:
ssh server -t 'some startup command'
Run Code Online (Sandbox Code Playgroud)
但是,当我在 mosh 中做类似的事情时,我得到:
$ mosh elisa2 --ssh="ssh -t 'cat blah'"
Pseudo-terminal will not be allocated because stdin is not a terminal.
/usr/bin/mosh: Could not resolve hostname cat
ssh_exchange_identification: Connection closed by remote host
/usr/bin/mosh: Did not find remote IP address (is SSH ProxyCommand disabled?).
Run Code Online (Sandbox Code Playgroud)
如何在 mosh 中实现与 ssh 中类似的行为?
这种方式是不可能的,因为 MOSH 本身已经在远程服务器上运行一些命令来启动其进程。另外,您编写它的方式,它被解释为服务器名称,这当然是不正确的。
在阅读mosh(1)(下次开始搜索的好方法)的手册页时,您可以简单地将命令指定为下一个参数:
mosh [options] [--] [user@]host [command...]
所以
$ mosh elisa2 'cat blah'
Run Code Online (Sandbox Code Playgroud)
应该只是为了工作(在 MOSH 中你不需要关心tty)。
一般来说,你还想运行 shell,所以在 后面cat,应该有bashToo,这样你就会得到提示:
$ mosh elisa2 "cat blah;bash"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2554 次 |
| 最近记录: |