コマンド ウィンドウからプロセスを切り離す
Go では、os.StartProcess() を使用して子プロセスを作成できます。ただし、デフォルトでは、このプロセスは親コマンド ウィンドウに接続されたままになります。プロセスを分離してバックグラウンドで実行するには、その属性を変更する必要があります。
コードでは、子プロセスのファイル記述子をリダイレクトするように procAttr 構造体を設定しました。ただし、Windows システムのコンソール ウィンドウを非表示にするために必要な設定が省略されているようです。
コンソール ウィンドウを非表示にするには、次の行を procAttr.Sys メンバーに追加します:
procAttr.Sys.HideWindow = true
しかし、これにより「間違ったメモリポインタへのパニック」エラーが発生するとおっしゃいました。これは、プロセスの分離とは関係のない、コード内の別の問題が原因である可能性が高くなります。
Windows GUI サブシステムにリンクせず、コンソール ウィンドウの作成を無効にせずにプログラムをコンパイルするには、次のコマンドを使用します。
go tool 8l -o output.exe -Hwindowsgui input.8
これにより、コンソール ウィンドウなしでバックグラウンドで実行できる実行可能ファイルが生成されます。
以上がWindows で Go プロセスをコマンド ウィンドウから切り離し、コンソール ウィンドウを非表示にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。