Heim > Backend-Entwicklung > Golang > Wie kann ich Exit-Codes zuverlässig aus dem os/exec-Paket von Go abrufen?

Wie kann ich Exit-Codes zuverlässig aus dem os/exec-Paket von Go abrufen?

Barbara Streisand
Freigeben: 2024-12-31 01:37:08
Original
818 Leute haben es durchsucht

How Can I Reliably Retrieve Exit Codes from Go's os/exec Package?

Bestimmen von Exit-Codes im os/exec-Paket von Go

In Go bietet das os/exec-Paket einen praktischen Mechanismus zum Ausführen von Systembefehlen. Allerdings kann es etwas schwierig sein, den Exit-Code eines ausgeführten Befehls zu erhalten.

Das Problem

Die Methoden Command.Run() und Command.Output() tun dies Bietet keinen direkten Zugriff auf den Exit-Code. Während Command.Wait() einen Fehler für Exit-Codes ungleich Null zurückgibt, enthält dieser Fehler nicht den spezifischen Exit-Code-Wert.

Eine plattformübergreifende Lösung

Leider gibt es keine plattformunabhängige API zum Abrufen von Exit-Codes. Für Linux-Systeme kann jedoch der folgende Ansatz verwendet werden:

import (
    "syscall"
)

...

// Attempt to execute the command
if err := cmd.Start(); err != nil {
    log.Fatalf("cmd.Start: %v", err)
}

// Wait for the command to complete
if err := cmd.Wait(); err != nil {
    if exitErr, ok := err.(*exec.ExitError); ok {
        // Convert exit status to an integer
        exitStatus := exitErr.ExitCode()
        log.Printf("Exit Status: %d", exitStatus)
    } else {
        log.Fatalf("cmd.Wait: %v", err)
    }
}
Nach dem Login kopieren

Bei dieser Lösung verlassen wir uns auf eine nicht standardmäßige ExitError-Struktur, die im Paket os/exec verfügbar ist. Indem wir prüfen, ob es vorhanden ist, können wir auf die ExitCode()-Methode zugreifen, um den Exit-Code abzurufen.

Einschränkungen

Bitte beachten Sie, dass dieser Ansatz spezifisch für Linux ist und möglicherweise Funktioniert nicht auf anderen Plattformen. Informationen zu alternativen Methoden finden Sie in der Dokumentation des OS/Exec-Pakets oder konsultieren Sie plattformspezifische Ressourcen.

Das obige ist der detaillierte Inhalt vonWie kann ich Exit-Codes zuverlässig aus dem os/exec-Paket von Go abrufen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage