0

如何从 Windows 应用程序远程设置 Linux 环境变量?

4

3 回答 3

2

你不能直接。环境变量只是一个与进程关联的值的表,并且在您fork(2) 成为进程时继承。

如果要设置它们,则需要在 Linux 端编写某种代码。最简单的可能是通过 shell 运行远程程序,并在命令行上设置它们。

否则,您需要一种方法让您的 Linux 端客户端将它们放入带有setenv(3).

于 2009-04-16T22:13:55.380 回答
1

从表面上看你相当简洁的问题,你可以让你的 Windows 应用程序 ftp 到 linux 系统作为将运行 linux 应用程序并修改他们的 .cshrc 或 .bashrc 的用户,将所需的环境变量添加到 shell 脚本. 不过,这不会修改已经运行的 shell。

在抽象级别上,您正在谈论进程间通信。您在要与某些 Linux 应用程序进行通信的 Windows 应用程序中有信息。我不确定环境变量是传达这些数据的最佳方式。也许最好在您的 Windows 应用程序和 Linux 应用程序之间打开一个套接字。

于 2009-04-16T22:30:33.500 回答
0

我能想到的两种方法——按可能的简单顺序:

  1. 编写一个在网络套接字上侦听命令的 Linux 程序。您的 Windows 应用程序会发送相应的命令。Linux 程序运行命令来设置环境变量 - 类似于system(export MY_ENV_VAR=abc).This 在网络上不会是安全的,除非你这样做。

  2. 使用 SSH 登录 Linux 系统,然后运行脚本来设置变量。我不知道周围是否有适用于 Windows 的 SSH 库,但如果没有,我会感到惊讶。PuTTY 是一个优秀的开源 Windows SSH 客户端,因此您可以从那里使用代码,但您应该首先检查许可证 - 取决于您计划如何使用您的应用程序。此选项的好处是您可以在必要时使用 PKI 来保护网络连接。

于 2009-04-16T22:43:57.493 回答