Maison > développement back-end > Golang > le corps du texte

Comment vérifier de manière fiable si un processus existe dans Go ?

Linda Hamilton
Libérer: 2024-11-17 09:47:03
original
566 Les gens l'ont consulté

How to Reliably Check if a Process Exists in Go?

Vérifier si un processus existe dans Go

Lorsque vous travaillez avec des processus dans Go, il est crucial de savoir si un processus particulier avec un PID donné existe. L’utilisation de os.FindProcess ne fournit pas toujours des informations concluantes. Pour résoudre ce problème, Go fournit un moyen simple et efficace de vérifier l'existence d'un processus :

Vérification du signal de style UNIX

L'approche UNIX traditionnelle consiste à envoyer un signal de 0 au processus en utilisant tuer. Si le signal est envoyé avec succès, cela indique que le processus est actif. En Go, cela peut être accompli comme suit :

package main

import (
    "fmt"
    "log"
    "os"
    "strconv"
    "syscall"
)

func main() {
    process, err := os.FindProcess(12345)
    if err != nil {
        fmt.Printf("Failed to find process: %s\n", err)
    } else {
        err = process.Signal(syscall.Signal(0))  // Send signal 0 to verify existence
        if err != nil {
            fmt.Printf("Process %d does not exist.", 12345)
        } else {
            fmt.Printf("Process %d is alive.", 12345)
        }
    }
}
Copier après la connexion

En envoyant un signal zéro, vous pouvez vérifier si le processus est terminé ou est toujours en cours. Cette approche est simple et fiable, fournissant des informations claires et précises sur l'existence du processus.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal