Функция syscall.Kill

Функция syscall.Kill отправляет сигнал процессу с указанным PID (идентификатором процесса). Первым параметром функция принимает идентификатор процесса, вторым - сигнал, который нужно отправить. Сигнал может быть представлен константой из пакета syscall, например syscall.SIGTERM или syscall.SIGKILL.

Синтаксис

gosyscall.Kill(pid int, signal syscall.Signal)

Пример

Давайте отправим процессу сигнал завершения SIGTERM:

gopackage main

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

func main() {
  pid := os.Getpid()
  err := syscall.Kill(pid, syscall.SIGTERM)
  if err != nil {
    fmt.Println("Error sending signal:", err)
    return
  }
  fmt.Println("Signal sent successfully")
}

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

go"Signal sent successfully"

Пример

Давайте отправим процессу сигнал принудительного завершения SIGKILL:

gopackage main

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

func main() {
  pid := os.Getpid()
  err := syscall.Kill(pid, syscall.SIGKILL)
  if err != nil {
    fmt.Println("Error sending signal:", err)
    return
  }
  fmt.Println("Signal sent successfully")
}

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

go"Signal sent successfully"

Пример

Давайте отправим сигнал процессу с указанным PID:

gopackage main

import (
  "fmt"
  "syscall"
)

func main() {
  pid := 12345
  err := syscall.Kill(pid, syscall.SIGTERM)
  if err != nil {
    fmt.Println("Error sending signal:", err)
    return
  }
  fmt.Println("Signal sent successfully")
}

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

go"Signal sent successfully"

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

  • функцию syscall.Getpid,
    которая возвращает идентификатор текущего процесса
  • функцию syscall.Exec,
    которая заменяет текущий процесс новым
  • функцию syscall.ForkExec,
    которая создает новый процесс и запускает в нем программу
  • функцию os.Process.Kill,
    которая отправляет сигнал завершения процессу из пакета os