2
後にクリーンアップを処理します。親Exit/Terminate後に子プロセスをクリーンアップするにはどのようなオプションが必要ですか?私はwin/linux上で走ろうと計画しているので、多少プラットフォームのニュートラルでなければなりません。子は私のようなもので、外出先アプリから別のバイナリを実行したい終了
後にクリーンアップを処理します。親Exit/Terminate後に子プロセスをクリーンアップするにはどのようなオプションが必要ですか?私はwin/linux上で走ろうと計画しているので、多少プラットフォームのニュートラルでなければなりません。子は私のようなもので、外出先アプリから別のバイナリを実行したい終了
os/signalパッケージを使用すると、現在のプロセスで強制終了信号を待機することができます。
import (
"os/exec"
"os"
"os/signal"
)
// ...
cmd := exec.Command("another_app_binary", "-config", "config.conf")
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Run()
c := make(chan os.Signal, 2)
signal.Notify(c, os.Interrupt, os.Kill)
go func() {
<-c
// cleanup
cmd.Process.Kill()
os.Exit(1)
}()
// ...
何について 'cmd.Process.Kill()' –
親子プロセスがあなたのアプリケーション/ another_app_binaryにどのように接続しますか?どちらがどちらですか? another_app_binaryの子プロセスを強制終了していますか?質問に詳しい情報を記入してください。 –
ありがとうございます、質問を更新しました。 –