godaemon是用来为应用增加daemon和graceful的。
使用方法
只增加daemon功能
要让你的应用支持daemon很简单,只需导入godaemon包即可,无需再调用任何方法
package main import( _ "github.com/tim1020/godaemon" //仅导入,包的init方法被自动调用,嵌入daemon功能 ) func main(){ //正常的业务代码 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "pid=%d", os.Getpid()) }) http.ListenAndServe(":8080", nil) }
增加graceful
package main import( "github.com/tim1020/godaemon" //注意: 与仅daemon时不一样 ) func main(){ mux1 := http.NewServeMux() mux1.HandleFunc("/", handler) godaemon.GracefulServe(":8080", mux1) } func handler(w http.ResponseWriter, r *http.Request){ //业务处理 }
注意: 因为使用了syscall包,Win下不支持哦
命令行操作
使用godaemon后,你可以在命令行中以下列指令来管理你的应用:
(假设你编译出来的应用执行文件叫“app”,如果你的应用本身需要带参数运行,请把daemon指令参数放在最后)
app [start]
带start参数或不带参数,启动为daemon进程
app restart
带restart参数,重启进程(GracefulServe时不中断服务,仅daemon时会先停止再启动)
app stop
带stop参数,停止应用进程 (kill -HUP)
app -h
带-h参数, 显示命令行指令提示
带其它不识别的参数启动,godaemon不接管,直接短路至业务代码
我正在编写一个增量加载管道,将数据从MySQL加载到BigQuery,并使用Google Cloud Datastore作为元数据存储库。 我当前的管道是这样写的: 我面临的问题是,当BigQuery写入步骤失败时,数据存储仍在更新,是否有任何方法在更新数据存储之前等待BigQuery写完成? 谢谢!
我尝试过创建循环,比如减去用户想要购买的物品的数量,同时计算取值时的模数为0,减去用户购买的数量,但我离它还很远。 数组来自其他方法: 是商品的价格是用户购买的商品数量是用户对折扣的选择,例如,用户可以将折扣设置为2包、3包甚至无。
我正在本地运行Xray守护进程,我希望通过设置守护进程将数据从docker应用程序推送到Xray。 通过在守护进程容器内运行验证了守护进程的安装,并且运行良好,如何在容器外运行? 创建了一个新的网络Mynetwork,并将容器(应用程序和守护进程)连接到该网络。甚至能ping他们 尝试将IP地址、docker ipv4地址(172.21.0.2)和容器名称作为awsxray.setdaemonAd
命名 git-daemon - 一个非常简单的Git仓库服务器 概要 git daemon [--verbose] [--syslog] [--export-all] [--timeout=<n>] [--init-timeout=<n>] [--max-connections=<n>] [--strict-paths] [--base-path=<
Commons Daemon 可以帮你实现将一个普通的 Java 应用编程系统的一个后台服务。 例如 Tomcat 就是利用这个项目来实现作为 Linux 和 Windows 的服务启动和停止的。 示例代码: /** * Launch the Engine from a variety of sources, either through a main() or invoked through *
Space Daemon Space Daemon is a wrapper built in Go around awesome IPFS tools so that you can have start coding a decentralized desktop app as fast as possible. It's built on top of Textile Threads and