如何从Windows应用程序远程设置Linux环境变量?
答案 0 :(得分:2)
你不能直接。环境变量只是与流程关联的值表,并且在您fork(2)
流程时就会存在。
如果要设置它们,则需要在Linux端执行某些类代码。最简单的可能是通过shell运行远程程序,并在命令行上设置它们。
否则,您需要一种方法让您的Linux端客户端使用setenv(3)
将它们放入环境中。
答案 1 :(得分:1)
在面值上提出你的相当简洁的问题,你可以将你的Windows应用程序ftp作为用户来运行linux应用程序并修改他们的.cshrc或.bashrc,将所需的环境变量添加到linux系统shell脚本。但是,这不会修改已经运行的shell。
在抽象层面,您谈论的是进程间通信。您希望与之通信的Windows应用程序中的信息可以与某些Linux应用程序进行通信。我不确定环境变量是传递这些数据的最佳方式。也许在Windows应用程序和Linux应用程序之间打开一个套接字是最好的。
答案 2 :(得分:0)
我能想到的两种方式 - 可能的简单顺序:
编写一个Linux程序,用于侦听网络套接字上的命令。您的Windows应用程序发送适当的命令。 Linux程序运行命令来设置环境变量 - 类似于system(export MY_ENV_VAR=abc).
,除非你这样做,否则这将不会通过网络安全。
使用SSH登录Linux系统,然后运行脚本来设置变量。我不知道Windows是否有SSH库,但如果没有,我会感到惊讶。 PuTTY是一个优秀的开源Windows SSH客户端,因此您可以使用其中的代码,但您应该首先检查许可证 - 具体取决于您计划如何使用您的应用程序。如有必要,此选项的好处是您可以使用PKI来保护网络连接。