2009-04-16 26 views
0

WindowsアプリケーションからリモートでLinux環境変数を設定するにはどうすればよいですか?環境変数をリモートで設定していますか?

+2

TLI ...あなたのenv変数はどのように使用されますか?物事を実行するシェルでenvヴァールを変更しようとしていますか?それとも、システム全体のプリセットについて話していますか? – Varkhan

答えて

2

直接にはできません。環境変数は、プロセスに関連付けられた値のテーブルに過ぎず、プロセスがfork(2)の場合にはその値が含まれます。

設定したい場合は、 Linux側でコードの種類が必要です。最も簡単なのは、リモートプログラムをシェルで実行し、コマンドラインでそれらを設定することです。

それ以外の場合は、Linux側のクライアントにsetenv(3)という環境変数を設定する必要があります。

1

面白い質問をすると、Linuxアプリケーションを実行し、.cshrcまたは.bashrcを変更して、希望する環境変数を追加するユーザーとしてWindowsアプリケーションftpをLinuxシステムに置くことができますシェルスクリプトに渡します。しかし、これで実行中のシェルは変更されません。

抽象的なレベルでは、プロセス間通信について話しています。いくつかのLinuxアプリケーションと通信するために通信したいWindowsアプリケーションの情報があります。私は環境変数がこのデータを伝達する最善の方法であるとは思っていません。おそらくあなたのWindowsアプリとLinuxアプリの間のソケットを開くことが最善の方法でしょう。私は考えることができる

0

二つの方法 - 単純化の可能性の高い順に:

  1. コマンドのネットワークソケットをリッスンし、Linuxのプログラムを書きます。 Windowsアプリケーションから適切なコマンドが送信されます。 Linuxプログラムは、環境変数を設定するコマンドを実行します。system(export MY_ENV_VAR=abc).これは、そうしない限り、ネットワーク上では安全ではありません。

  2. SSHを使用してLinuxシステムにログインし、スクリプトを実行して変数を設定します。 Windowsの周りにSSHライブラリがあるかどうか分かりませんが、そうでない場合は驚いています。 PuTTYは優れたオープンソースのWindows SSHクライアントであるため、そこからコードを使用できるかもしれませんが、まずアプリケーションの使用方法に応じてライセンスを確認してください。このオプションには、必要に応じてPKIを使用してネットワーク接続を保護できるという利点があります。

+0

1. - 変数をエクスポートしても、すでに実行中のシェルまたは起動していないシェルで変数が設定されることはありません。現在の実行中のプロセス(またはその時点からforkされたプロセス)に設定されます。しかし、プロセスはネットワークコードを実行しています。おそらく質問者が望んでいたものではないでしょう。 –

+0

2.-同じ問題を1と共有します。どちらの場合も、システムまたはユーザーの設定を編集して、まだ起動していないシェルの変数を設定できます –

関連する問題