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 :
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!