быстрый вопрос:
У меня есть программа, которая запускает процесс, который выполняет базовую удаленную команду через SSH, например:
ssh aiden@host /bin/ps
Выполнение этого вручную из моей оболочки прошло успешно (как и следовало ожидать), но родительская программа, выполняющая задачу, всегда выходит из 127 ... даже с абсолютными путями.
Это не локальный конец, возвращающий 127 (он может найти двоичный файл ssh), но всегда удаленный конец, даже когда эквивалентные команды из оболочки, также с абсолютными путями, выполняются нормально.
Есть идеи, почему моя оболочка может выполнить эту команду, а моя программа - нет? Я понимаю, что это может быть специфическим для моего языка (и, следовательно, вопрос для StackOverflow), но моя программа передает свою среду в SSH, поэтому я не могу понять, что отличает.
Любые идеи?
Задача решена. API, который я использовал для запуска процесса, неправильно добавлял кавычки:
На оболочке (отлично работает)
]$ ssh aiden@host /bin/ps
Моя программа выполняла эквивалент:
]$ ssh aiden@host "/bin/ps"
Это вызывало проблемы, потому что IIRC оболочка обрабатывает кавычки, а оболочка явно отсутствует в конце API.