Heim > Backend-Entwicklung > Golang > Wie entkoppele ich einen Go-Prozess vom Befehlsfenster und verstecke das Konsolenfenster in Windows?

Wie entkoppele ich einen Go-Prozess vom Befehlsfenster und verstecke das Konsolenfenster in Windows?

DDD
Freigeben: 2024-11-03 17:10:29
Original
805 Leute haben es durchsucht

How to Decouple a Go Process from the Command Window and Hide the Console Window in Windows?

Einen Prozess vom Befehlsfenster entkoppeln

In Go können Sie mit os.StartProcess() einen untergeordneten Prozess erstellen. Standardmäßig bleibt dieser Prozess jedoch mit dem übergeordneten Befehlsfenster verbunden. Um den Prozess zu entkoppeln und im Hintergrund auszuführen, müssen Sie seine Attribute ändern.

In Ihrem Code haben Sie die procAttr-Struktur eingerichtet, um die Dateideskriptoren für den untergeordneten Prozess umzuleiten. Es scheint jedoch, dass Sie die notwendige Einstellung zum Ausblenden des Konsolenfensters für Windows-Systeme ausgelassen haben.

Um das Konsolenfenster auszublenden, fügen Sie die folgende Zeile zum procAttr.Sys-Mitglied hinzu:

procAttr.Sys.HideWindow = true
Nach dem Login kopieren

Sie haben jedoch erwähnt, dass dies zu einem Fehler „Panik wegen falschem Speicherzeiger“ führt. Dies liegt höchstwahrscheinlich an einem anderen Problem in Ihrem Code, das nichts mit der Prozessentkopplung zu tun hat.

Um Ihr Programm zu kompilieren, ohne eine Verknüpfung zum Windows-GUI-Subsystem herzustellen und die Erstellung des Konsolenfensters zu deaktivieren, verwenden Sie den folgenden Befehl:

go tool 8l -o output.exe -Hwindowsgui input.8
Nach dem Login kopieren

Dadurch wird eine ausführbare Datei generiert, die im Hintergrund ohne Konsolenfenster ausgeführt werden kann.

Das obige ist der detaillierte Inhalt vonWie entkoppele ich einen Go-Prozess vom Befehlsfenster und verstecke das Konsolenfenster in Windows?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage