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

nom du processus de requête Golang

WBOY
Libérer: 2023-05-13 09:31:36
original
1692 Les gens l'ont consulté

Golang est un langage de programmation puissant qui prend en charge les appels API de bas niveau pour de nombreux systèmes d'exploitation. En tant que programmeur Golang, vous devez souvent gérer et surveiller les processus exécutés sur le système d'exploitation. Dans cet article, nous explorerons comment interroger les noms de processus à l'aide de Golang.

1. Définition du nom du processus

Un processus fait référence à un programme en cours d'exécution dans le système d'exploitation. Chaque processus possède un ID de processus (PID) unique et un nom de processus. Le nom du processus est l'identifiant du processus dans le système, généralement le nom de l'application. Par exemple, « chrome.exe » dans les systèmes Windows représente une instance en cours d'exécution du navigateur Google Chrome.

Dans les systèmes Linux, le nom du processus n'est pas seulement le nom de l'application, mais inclut également l'état et d'autres informations du processus. Par exemple, « sshd : user@pts/0 » indique un processus de serveur SSH en cours d'exécution qui communique avec le terminal d'exploitation (pts/0) de l'utilisateur nommé « user ».

2. Interroger le nom du processus

Pour interroger le nom du processus en cours d'exécution, nous devons utiliser les progiciels os et syscall de Golang. Le progiciel syscall fournit une interface d'appel système qui peut accéder aux fonctions sous-jacentes du système d'exploitation.

1. Obtenez l'ID du processus

Nous pouvons utiliser le package OS de Golang pour obtenir le PID du processus en cours. Voici l'exemple de code :

package main

import (
    "fmt"
    "os"
)

func main() {
    pid := os.Getpid()
    fmt.Printf("Current process ID: %d
", pid)
}
Copier après la connexion

2. Utilisez syscall pour obtenir le nom du processus

Nous pouvons utiliser la fonction Getpgid du package syscall pour obtenir le PGID (Process Group ID) du processus spécifié. Nous pouvons ensuite utiliser le fichier stat dans le système de fichiers /proc pour analyser le nom et l'état du processus.

Voici l'exemple de code :

package main

import (
    "fmt"
    "os"
    "syscall"
)

func getProcessName(pid int) (string, error) {
    pgid, err := syscall.Getpgid(pid)
    if err != nil {
        return "", err
    }
    statFile := fmt.Sprintf("/proc/%d/stat", pgid)
    f, err := os.Open(statFile)
    if err != nil {
        return "", err
    }
    defer f.Close()
    var comm string
    fmt.Fscanf(f, "%d (%s)", &pgid, &comm)
    return comm, nil
}

func main() {
    pid := os.Getpid()
    name, err := getProcessName(pid)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Printf("PID %d, Process name: %s
", pid, name)
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons la fonction fmt.Fscanf pour lire le nom du processus à partir du fichier stat. Cette fonction est similaire à la fonction fmt.Scanf, mais nous permet de spécifier une chaîne de format pour lire les données.

Lors de la lecture du nom du processus, nous devons utiliser des parenthèses pour entourer le nom car il y a des parenthèses autour du nom dans le format de fichier statistique.

3. Résumé

Dans cet article, nous avons appris à utiliser Golang pour interroger le nom du processus. Nous utilisons les packages os et syscall pour obtenir le PID du processus actuel et le PGID du processus spécifié, puis utilisons le fichier stat dans le système de fichiers /proc pour analyser le nom et l'état.

Les puissantes fonctionnalités de Golang nous permettent de gérer et de surveiller plus facilement les processus exécutés sur le système d'exploitation. Si vous souhaitez en savoir plus sur la technologie de gestion des processus de Golang, vous pouvez consulter les documents et didacticiels pertinents, ainsi que vous référer à la documentation officielle et aux exemples de code de Golang.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!