Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah saya boleh menanggalkan proses Go daripada induknya dalam Windows menggunakan `StartProcess()`?

Bagaimanakah saya boleh menanggalkan proses Go daripada induknya dalam Windows menggunakan `StartProcess()`?

Susan Sarandon
Susan Sarandonasal
2024-11-03 19:45:29777semak imbas

How can I detach a Go process from its parent in Windows using `StartProcess()`?

Menyahgandingkan Proses dalam Go

Untuk memisahkan proses yang dibuat menggunakan StartProcess() daripada induknya (dalam kes ini, gesaan baris arahan), seseorang boleh memanfaatkan pilihan pemaut -Hwindowsgui yang disediakan oleh rantai alat Go.

Kod Asal

Kod Go yang disediakan cuba untuk mencipta proses yang dipisahkan menggunakan StartProcess(), dengan konfigurasi berikut:

<code class="go">var procAttr os.ProcAttr 
procAttr.Files = []*os.File{nil, nil, nil}</code>

Semasa menambah procAttr.Sys.HideWindow = true bertujuan untuk menyembunyikan tetingkap yang dikaitkan dengan proses, ia membawa kepada ralat "panik" kepada penunjuk memori yang salah.

Penyelesaian

The penyelesaian yang betul ialah menggunakan pilihan pemaut -Hwindowsgui apabila menyusun atur cara Go. Pilihan ini melumpuhkan penciptaan tetingkap konsol untuk proses semasa pelaksanaan:

go tool 8l -o output.exe -Hwindowsgui input.8

Dengan menggunakan pilihan pemaut -Hwindowsgui, proses dibuat tanpa tetingkap konsol, dengan berkesan menyahgandingannya daripada gesaan arahan. Ini membolehkan proses berjalan di latar belakang bebas daripada proses induk.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menanggalkan proses Go daripada induknya dalam Windows menggunakan `StartProcess()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn