Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用信号给 skynet 发消息 #75

Open
hanxi opened this issue Jun 26, 2021 · 0 comments
Open

使用信号给 skynet 发消息 #75

hanxi opened this issue Jun 26, 2021 · 0 comments

Comments

@hanxi
Copy link
Owner

hanxi commented Jun 26, 2021

skynet 只支持接收一个 SIGHUP 信号,该信号默认是用来切割日志文件的,跟 nginx 切割日志文件的方式一样。

nginx 支持比较多的信号,比如用于 reload 的 SIGHUP 和切割日志的 SIGUSR1 。

如果想用信号控制 skynet ,比如执行安全关服, skynet issues 里只讨论了可以重写一个自定义的日志服务来使用信号 SIGHUP 来安全关服。

那如果想要使用信号同时控制安全关服和切割日志该如何处理呢?

我想了个方案,重写一个自定义的日志服务,处理信号 SIGHUP 的逻辑,依靠一个文件的内容来区分信号想要传递的具体信息。这样想要支持什么消息都可以很简单的扩展了,比如文件内容写 reload 表示重新加载服务,cutlog 表示切割日志。可以先把指令写入文件,再调用 kill -1 命令。

这套机制实现代码见 https://github.com/hanxi/wlua/blob/main/service/log.lua

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant