Функция os.Getpid

Функция os.Getpid возвращает идентификатор (PID) текущего процесса в виде целого числа типа int. Этот идентификатор назначается операционной системой при запуске программы и может использоваться для идентификации процесса в системных вызовах, логировании или взаимодействии с другими процессами. Функция не принимает никаких параметров.

Синтаксис

goos.Getpid()

Пример

Давайте получим идентификатор текущего процесса и выведем его в консоль:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  pid := os.Getpid()
  fmt.Println(pid)
}

Результат выполнения кода (значение будет отличаться в зависимости от системы):

go"12345"

Пример

Давайте используем PID для создания уникального идентификатора в логах:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  pid := os.Getpid()
  message := fmt.Sprintf("[PID:%d] Application started", pid)
  fmt.Println(message)
}

Результат выполнения кода:

go"[PID:12345] Application started"

Пример

Давайте проверим, что PID остается неизменным в течение всей работы программы:

gopackage main

import (
  "fmt"
  "os"
  "time"
)

func main() {
  pid1 := os.Getpid()
  time.Sleep(1 * time.Second)
  pid2 := os.Getpid()

  if pid1 == pid2 {
    fmt.Println("PID is stable")
  }
}

Результат выполнения кода:

go"PID is stable"

Смотрите также

  • функцию os.Getppid,
    которая возвращает идентификатор родительского процесса
  • функцию os.Getuid,
    которая возвращает идентификатор пользователя текущего процесса
  • функцию os.Getgid,
    которая возвращает идентификатор группы текущего процесса
  • функцию os.Exit,
    которая завершает текущий процесс с указанным кодом