複数のgolangプログラム間で設定値を渡すことに興味があります。複数のGolangプログラム間で設定値を渡す
私は、環境変数を試してきたが、彼らはそれらを設定するものとは別のプログラムで読み取ることができません。
私がテストしていると私は、環境変数が設定されていると、それを設定し、同じプロセスで読み取ることができることを確信しています。私が最初に介して第2のプロセスを呼び出す場合にも、それはそれを印刷します:
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
os.Setenv("AVARIABLE", "12345")
reader := bufio.NewReader(os.Stdin)
fmt.Print("Enter text: ")
_, _ = reader.ReadString('\n')
fmt.Println("exiting")
}
と
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println(os.Getenv("AVARIABLE"))
}
環境変数コンテキストは、私の目的のためには狭すぎます。
私は、これらのオプションを検討しています:
は
/etc/profile.d/<filename>.sh
でファイルを作成し、より多くのグローバル変数を設定するためにsource /etc/profile.d/<filename>.sh
を実行します。は誰が読んで、環境変数の問題を回避することができ、ファイルのどこかを作成します。
もっと良い方法がありますか?どのように進むべきですか?
別のプロセスに環境変数を設定することはできません。プロセスは親からその環境を継承し、独自の変数のみを設定できます。 – JimB
私のタイトルはあまりにも限られていますか?この質問には答えがあり、新しい質問を作成する必要があるようです。 – BJR
それはあまりにもあなたの条件のためにヘビー級することができるhttps://github.com/coreos/etcdを見てみましょう – Plato