golang 程序怎么快速重启自己?

2018-03-01 11:31:50 +08:00
 zjsxwc

我就想强制快速重启,数据丢失也无所谓,看了Graceful Restart in Golang用多进程搞太麻烦了。

5914 次点击
所在节点    程序员
9 条回复
TangMonk
2018-03-01 13:21:27 +08:00
systemd
zjsxwc
2018-03-01 15:03:42 +08:00
@TangMonk

如果 win 下呢?
jswh
2018-03-01 15:06:11 +08:00
supervisor
Immortal
2018-03-01 15:28:29 +08:00
写个 sh 脚本 kill 掉嘛
fatjiong
2018-03-01 16:20:50 +08:00
supervisor+1
fenglangjuxu
2018-03-01 17:21:09 +08:00
用信号监控,如果收到这个信号,直接 kill 掉自己 pid(开始启动程序的时候,拿到自己的 pid),然后执行启动自己的脚本,或者等待 supervisor 来启动.
自己没试验过哈.
```
s := make(chan os.Signal, 1)
signal.Notify(s, syscall.SIGUSR2)
go func() {
for {
<-s
execcmd()
fmt.Println("ReLoad")
}
}()
```
TangMonk
2018-03-01 18:19:03 +08:00
@zjsxwc 用 service 應該可以
MeteorCat
2018-03-01 18:34:54 +08:00
systemctl 学习下,常驻应用都需要用到
codehz
2018-03-01 22:37:54 +08:00
linux 下直接 exec 不就好了(还可以保留源 pid

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/433825

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX