Функция syscall.Kill
Функция syscall.Kill отправляет сигнал процессу с указанным PID
(идентификатором процесса). Первым параметром функция принимает
идентификатор процесса, вторым - сигнал, который нужно отправить.
Сигнал может быть представлен константой из пакета syscall,
например syscall.SIGTERM или syscall.SIGKILL.
Синтаксис
syscall.Kill(pid int, signal syscall.Signal)
Пример
Давайте отправим процессу сигнал завершения SIGTERM:
package 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")
}
Результат выполнения кода:
"Signal sent successfully"
Пример
Давайте отправим процессу сигнал принудительного завершения SIGKILL:
package 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")
}
Результат выполнения кода:
"Signal sent successfully"
Пример
Давайте отправим сигнал процессу с указанным PID:
package 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")
}
Результат выполнения кода:
"Signal sent successfully"
Смотрите также
-
функцию
syscall.Getpid,
которая возвращает идентификатор текущего процесса -
функцию
syscall.Exec,
которая заменяет текущий процесс новым -
функцию
syscall.ForkExec,
которая создает новый процесс и запускает в нем программу -
функцию
os.Process.Kill,
которая отправляет сигнал завершения процессу из пакетаos