我有一个grpc服务器(golang),我想通过命令行工具启动和停止,停止服务器后,它应该执行一些管家任务并退出该过程。
func main() {
for {
var input string
fmt.Scanln(&input)
//parse input
// if 'start' execute - go start()
// if 'stop' execute - stop() and housekeepingTask() and break
}
}
可以有不同的方法。有没有更好的想法或方法可以使用?
我正在寻找类似的东西如何kafka /任何数据库启动和停止工作。
任何指向现有解决方案或方法的指针都将有所帮助。
最佳答案
我也得到了@Mehran评论/回答的正确方法之一。但让我花点时间回答一下-
这可以通过进程间通信来解决。我们可以有一个bash文件,该文件将用户信号发送到该程序(如果已运行),并且可以基于其进程对其执行操作。 (即使我们可以拥有stdin文件,该进程也可以读取并对其执行操作)
一些有用的链接-
-https://blog.mbassem.com/2016/05/15/handling-user-defined-signals-in-go/
-Send command to a background process
-How to signal an application without killing it in Linux?
我将尝试添加可运行的程序。
关于go - 如何在Golang中使用命令行工具启动和停止服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60774003/