gpt4 book ai didi

go - 如何发送中断信号

转载 作者:IT王子 更新时间:2023-10-29 01:09:53 26 4
gpt4 key购买 nike

我正在尝试实现一个在 Go 中调用中断信号的函数。我知道如何使用 signal.Notify(interruptChannel, os.Interrupt) 拦截来自控制台的中断信号,但是,我找不到实际发送中断信号的方法。我发现你can send a signal to a process , 但我不确定这是否可用于发送顶级中断信号。

有没有一种方法可以从 Go 函数中发送一个中断信号,该信号可以被任何正在监听系统中断信号的东西捕获,或者是 Go 不支持的东西?

最佳答案

假设你正在使用类似这样的东西来捕获中断信号

var stopChan = make(chan os.Signal, 2)
signal.Notify(stopChan, os.Interrupt, syscall.SIGTERM, syscall.SIGINT)

<-stopChan // wait for SIGINT

在代码的任何地方使用 below 将中断信号发送到上面的等待部分。

syscall.Kill(syscall.Getpid(), syscall.SIGINT)

或者如果您在定义 stopChan 变量的同一个包中。从而使其易于访问。你可以做到这一点。

stopChan <- syscall.SIGINT

或者你可以把stopChan定义成一个全局变量(首字母大写也可以),那么你也可以从不同的包中发送中断信号。

Stopchan <- syscall.SIGINT

关于go - 如何发送中断信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40498371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com