私はログイン時に別のシェルにユーザーを起動するGoで何かをしようとしています。だから、このアプリケーションはログイン時にいくつかの作業を行い、その後bashシェルにユーザを落としてから、終了したらより多くの作業をして終了します。私はそれをシェルに入れることはできません。Go:bashシェルを起動する方法
package main
import (
"fmt"
"os/exec"
)
func main() {
proc := exec.Command("/bin/bash")
out, e := proc.StdoutPipe()
proc.Start()
fmt.Println("Ran a shell in go")
fmt.Println(out)
fmt.Println(e)
}
すぐに終了します。
を働いたものだ後、私は認めなければならないことを把握、I問題を完全に理解していない。シェルに新しいシェルが必要ですか? 正しく理解すると、以下のようなものが役立ちます。 'syscall.Exec(os.Getenv(" SHELL ")、[] string {os.Getenv(" SHELL ")}、syscall.Environ()) ' – noisewaterphd