web-dev-qa-db-ja.com

moshでスタートアップコマンドを実行する

mosh経由でログインした後、起動コマンドを実行したいと思います。 sshを使用すると、次のようになります。

ssh server -t 'some startup command'

しかし、私がモッシュで同様のことをしているとき、私は次のようになります:

$ 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?).

Sshと同様の動作をmoshで実現するにはどうすればよいですか?

3
sygi

MOSH自体がすでにリモートサーバーでプロセスを開始するためのコマンドを実行しているため、これはこの方法ではほとんど不可能です。また、あなたがそれを書いた方法では、それはサーバー名として解釈されますが、それは確かに正しくありません。

mosh(1) (次回検索を開始するための良い方法)のマニュアルページを読んでいると、次の引数としてコマンドを指定できます。

mosh [options] [--] [user@]Host [command...]

したがって、

$ mosh elisa2 'cat blah'

仕事にぴったりです(MOSHのttyを気にする必要はありません)。

通常、シェルも実行する必要があるため、catの後にbashもあるはずなので、プロンプトが表示されます。

$ mosh elisa2 "cat blah;bash"
2
Jakuje