Функция os.Getppid

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

Синтаксис

goos.Getppid()

Пример

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

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  res := os.Getppid()
  fmt.Println(res)
}

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

go12345

Пример

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

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  pid := os.Getpid()
  ppid := os.Getppid()
  fmt.Printf("PID: %d, PPID: %d\n", pid, ppid)
}

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

go"PID: 12345, PPID: 12344"

Пример

Давайте проверим, является ли текущий процесс дочерним по отношению к другому процессу с известным PID:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  expectedPPID := 1000
  actualPPID := os.Getppid()
  
  if actualPPID == expectedPPID {
    fmt.Println("Parent process is correct")
  } else {
    fmt.Printf("Expected PPID: %d, got: %d\n", expectedPPID, actualPPID)
  }
}

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

go"Expected PPID: 1000, got: 12344"

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

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