gpt4 book ai didi

go - 优雅地退出 go 应用程序

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

我是 Go 的新手,我有一些小服务正在运行。

当我部署一个新版本时,我通常只上传新的二进制文件,杀死现有进程并启动一个新进程。

我想知道这样做是否正确,或者是否有更好的方法。

最佳答案

杀掉进程,更换,重启没有错。如果您想在退出时进行一些清理,您可以执行以下操作:

import(
"fmt"
"os"
"os/signal"
"syscall"
)

func main(){
//work here

go gracefulShutdown()
forever := make(chan int)
<-forever
}

func gracefulShutdown() {
s := make(chan os.Signal, 1)
signal.Notify(s, os.Interrupt)
signal.Notify(s, syscall.SIGTERM)
go func() {
<-s
fmt.Println("Sutting down gracefully.")
// clean up here
os.Exit(0)
}()
}

如果您确实 kill {pid}(没有 -9 开关),进程将在终止前调用 gracefullShutdown 函数。

关于go - 优雅地退出 go 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37798572/

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