openlang

Go 会保留 SIGUSR1 和 SIGUSR2 吗?

各位开发者,

我们想在 dmtcp 下运行一个 go 应用(GitHub 上的 dmtcp/dmtcp 是分布式多线程检查点项目 DMTCP(https://github.com/dmtcp/dmtcp))。这个检查点工具使用 SIGUSR2(也可以改用 SIGUSR1),如果它管理的应用也使用这些信号,就会报错。我们的测试似乎表明,所有 go 应用,包括最简单的程序,都会使用这两个信号。我查过文档,但没找到相关说明,如果漏看了还请见谅。大家了解这种行为吗,有没有办法让 go 不使用这两个信号?

非常感谢

从英语翻译查看原文

后续讨论 2

顺着彼此的依据读下去
  1. 固定链接

    你好!

    Go 应用本来就依赖 SIGUSR1(性能分析)和 SIGUSR2(运行时管理),这与 DMTCP 使用相同信号的方式冲突(DMTCP 也可以选择 SIGUSR1)。目前 Go 的运行时没有直接停止使用这些信号的选项。可能的变通方式包括去掉 runtime/pprof 导入,谨慎地把 DMTCP 配置为只用 SIGUSR1,把 Go 进程隔离开,或向 DMTCP 维护者咨询具体建议。在使用 DMTCP 时,强烈不建议在 Go 中自行处理这些信号。

    从英语翻译查看原文

同一个问题的其他角度

  1. 在 Raspberry Pi 4 上打开文件

    我在 Raspberry Pi 4 上用 for 循环里的 fopen 读取某个目录中的文件,总共有 1200 多个。循环执行到一定次数后,fopen 就无法再读取下一个文件了。应该怎么解决这个问题?

    回复 2最近活动 c
  2. 如何停止 inets 服务器?

    你好, 我有个关于 inets 的基础问题(顺便说一下,它不需要额外依赖,用着很方便),已经启动的 inets“服务”该怎么关闭(比如在 28.4 版本中)? 下面这些尝试都没成功。 上面的 httpd 条目是不是因为什么原因少了 {profile,…

    回复 2最近活动 erlang