Рабочий процесс Альфреда: SSH и команда «Выполнить» после успешного подключения

Я хочу подключиться по SSH к удаленному компьютеру и после подключения хочу запустить команду для перехода к одной конкретной папке.

У меня есть псевдоним для моего SSHи после подключения я хочу перейти в папку, скажем, cd cdd2/workspace, и запустить команду run webapp

Но когда я когда-либо пытаюсь, этот Альфред не запускает команду в том же окне, и она дает сбой. Также я хочу, чтобы терминал был виден, чтобы я мог проверить наличие непредвиденных ошибок.

В настоящее время я пытаюсь использовать окно терминала Aflred, но оно не ждет завершения ssh и запускает его немедленно, даже если я попробую типа

friday ; cd cdd2/workspace ; run workflow

1 ответ

Давайте посмотрим на ваш пример:

      friday ; cd cdd2/workspace ; run workflow

Здесь вы запускаете команды на своем локальном компьютере после закрытия ssh-соединения, независимо от того, завершается ли оно с ошибками:

Это потому, что вы использовали разделитель команд;.

Что вам нужно сделать, так это запустить команду на своем удаленном компьютере, что вы можете сделать, указав команды, которые вы хотите запустить после команды ssh:

      ssh -p 12345 someuser@somemachine "cd cdd2/workspace && run workflow"

В этом случае мы используем двойной амперсанд&&в качестве разделителя команд, который сообщит вашей (удаленной) оболочке запускать вторую команду только в том случае, если первая команда завершается успешно без каких-либо ошибок.

Возможно, вы захотите использоватьscreenчтобы предотвратить выход вашего программного обеспечения в случае разрыва соединения ssh:

      ssh -p 12345 someuser@somemachine "cd cdd2/workspace && screen run workflow"

Теперь, если соединение оборвется, вы можете просто повторно подключиться к серверу с помощьюssh -p 12345 someuser@somemachine "screen -r"чтобы повторно подключиться к текущему сеансу экрана без потери данных.

Другие вопросы по тегам