Maison  >  Article  >  développement back-end  >  Comment vérifier de manière fiable si un processus existe dans Go ?

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

Linda Hamilton
Linda Hamiltonoriginal
2024-11-17 09:47:03570parcourir

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)
        }
    }
}

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!

Déclaration:
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