我正在尝试使用stdpipes在golang中管理应用程序(需要通过某个过程关闭,在这种情况下可以拯救世界)。
这是我试图实现的目标的一个简单示例,但我有一个问题对我来说非常具体,但对其他人来说也可能很有趣(也许你可以建议如何推广它)。
我还添加了一个名为的函数,该函数创建一个goroutine,并在发送终止信号时管理程序的停止。interruptListener
脚本的正常功能:
启动我的世界服务器
等待 40 秒,然后通过 std 发出“stop”命令
(在本例中,它按预期打印有关保存过程的所有日志)
测试用例(用于演示问题出在哪里):
启动我的世界服务器
在脚本发出停止命令之前,用户发送ctrl+ c
(在这种情况下,它应该完成有关保存过程的日志,然后退出,但它没有......似乎在收到终止信号后返回假,所以它只是退出)scanner.Scan()
您知道为什么会发生这种情况吗?我应该研究什么才能找到解决方案?
我真的很迷茫,我已经花了8个多小时与所有可能的代码组合...
跃然一笑
紫衣仙女
相关分类