1

Я хотел бы запустить некоторую команду запуска после входа в систему через mosh . С ssh я бы сделал это так:

ssh server -t 'some startup command'

Но когда я делаю подобное в 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?).

Как добиться в mosh такого же поведения, как в ssh?

1 ответ1

1

Это, скорее всего, невозможно, поскольку сам MOSH уже запускает какую-то команду для запуска своего процесса на удаленном сервере. Также, как вы написали это, оно интерпретируется как имя сервера, что, безусловно, не правильно.

Читая справочную страницу mosh(1) (хороший способ начать поиск в следующий раз), вы можете указать команду просто как следующий аргумент:

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

следовательно

$ mosh elisa2 'cat blah'

следует просто на работу (вам не нужно заботиться о tty в MOSH).

Как правило, вы также хотите запустить оболочку, поэтому после cat тоже должен быть bash чтобы вы получили приглашение:

$ mosh elisa2 "cat blah;bash"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .