Задавать переменные среды удаленно? - PullRequest
0 голосов
/ 17 апреля 2009

Как я могу установить переменные окружения Linux удаленно из приложения Windows?

Ответы [ 3 ]

2 голосов
/ 17 апреля 2009

Вы не можете напрямую. Переменные среды - это просто таблица значений, связанных с процессом, и они присваиваются при fork(2) процессе.

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

В противном случае вам нужен способ заставить клиента на стороне Linux поместить их в среду с помощью setenv(3).

1 голос
/ 17 апреля 2009

Если взять ваш довольно лаконичный вопрос по номиналу, вы можете использовать ftp-приложение для Windows в системе linux в качестве пользователя, который собирается запустить приложение linux и изменить свои .cshrc или .bashrc, добавив нужные переменные среды скрипт оболочки. Однако это не изменит уже запущенные оболочки.

На абстрактном уровне вы говорите о межпроцессном взаимодействии. У вас есть информация в приложении Windows, с которой вы хотите связаться для связи с каким-либо приложением Linux. Я не уверен, что переменные среды - лучший способ передать эти данные. Возможно, было бы лучше открыть сокет между вашим приложением Windows и приложением Linux.

0 голосов
/ 17 апреля 2009

Два способа, о которых я могу думать - в вероятном порядке простоты:

  1. Напишите программу для Linux, которая прослушивает команды в сетевом сокете. Ваше приложение Windows отправляет соответствующую команду. Программа Linux запускает команду для установки переменной среды - что-то вроде system(export MY_ENV_VAR=abc). Это не будет безопасным в сети, если вы не сделаете это.

  2. Используйте SSH для входа в систему Linux, затем запустите сценарий для установки переменной. Я не знаю, есть ли какие-нибудь библиотеки SSH для Windows, но я бы удивился, если бы их не было. PuTTY - это отличный SSH-клиент с открытым исходным кодом, поэтому вы можете использовать оттуда код, но сначала вам нужно проверить лицензию - в зависимости от того, как вы планируете использовать свое приложение. Преимущество этого варианта заключается в том, что при необходимости можно использовать PKI для защиты сетевого подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...