Назад | Перейти на главную страницу

Удаленное выполнение ssh всегда завершается 127

быстрый вопрос:

У меня есть программа, которая запускает процесс, который выполняет базовую удаленную команду через SSH, например:

ssh aiden@host /bin/ps

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

Это не локальный конец, возвращающий 127 (он может найти двоичный файл ssh), но всегда удаленный конец, даже когда эквивалентные команды из оболочки, также с абсолютными путями, выполняются нормально.

Есть идеи, почему моя оболочка может выполнить эту команду, а моя программа - нет? Я понимаю, что это может быть специфическим для моего языка (и, следовательно, вопрос для StackOverflow), но моя программа передает свою среду в SSH, поэтому я не могу понять, что отличает.

Любые идеи?

Задача решена. API, который я использовал для запуска процесса, неправильно добавлял кавычки:

На оболочке (отлично работает)

]$ ssh aiden@host /bin/ps

Моя программа выполняла эквивалент:

]$ ssh aiden@host "/bin/ps"

Это вызывало проблемы, потому что IIRC оболочка обрабатывает кавычки, а оболочка явно отсутствует в конце API.