登录
首页 >  Golang >  Go问答

golang 如何后台运行,命令模式?

来源:SegmentFault

时间:2023-01-23 10:31:37 348浏览 收藏

本篇文章给大家分享《golang 如何后台运行,命令模式?》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

caddy常用指令:

前台运行caddy:./caddy run
后台运行caddy:./caddy start
停止caddy:./caddy stop
重载配置:./caddy reload

我想实现类似caddy 的后台启动、停止、重载、停止等功能

不接着借助于第三方后台守护程序来实现。

请问如何实现?

正确答案

在后台启动应该是启动了一个新的进程,然后在一个位置记录这个PID。

然后,再执行stop子命令的时候,读取程序PID,向这个PID发送停止信号,程序收到信号后,执行停止的操作。

重载和停止一样,只不过发送的是不同的信号,程序收到信号后处理过程不一样。

这个其实就是 进程通信 信号
golang 里面的 os/signal 包就是处理这个的


后台守护其实不只是控制程序的启动停止和重载,后台守护主要还是在检测程序是否在运行、然后在适当的时候自动重新启动程序。

使用caddy start启动的程序,作用只是启动一个新的进程,没有后续的检测和保活机制。所以这个和第三方后台守护程序不冲突,程序启动后一般还是要配一个后台守护的,和程序启动的方式没什么关系。

到这里,我们也就讲完了《golang 如何后台运行,命令模式?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于golang的知识点!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表