systemd socket activation golang demo
2024-09-04 08:56:52
service define
rongapp.service
[Unit]
Description=rong Hello World HTTP
Requires=network.target rongapp.socket
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/rong
[Install]
WantedBy=multi-user.target
socket define
[Socket]
ListenStream=8076
Accept=yes
[Install]
WantedBy=sockets.target
main.go
package main
import (
"io"
"net/http"
"github.com/coreos/go-systemd/activation"
)
func HelloServer(w http.ResponseWriter, req *http.Request) {
io.WriteString(w, "hello socket activated world!\n")
}
func main() {
listeners, err := activation.Listeners()
if err != nil {
panic(err)
}
if len(listeners) != 1 {
panic("Unexpected number of socket activation fds")
}
http.HandleFunc("/", HelloServer)
http.Serve(listeners[0], nil)
}
go mod
go mod init github.com/rongfengliang/appdemo
gp get github.com/coreos/go-systemd/activation
start service
- copy define files
location /usr/lib/systemd/system/
- start socket
systemctl start rongapp.socket
systemctl start rongapp.service
systemctl enable rongapp.socket
systemctl enable rongapp.service
test
curl http://127.0.0.1:8076
some links
https://github.com/coreos/go-systemd/tree/master/examples/activation/httpserver
最新文章
- datagridview 单元格格式转换注意
- [转]Java线程安全总结
- weixin 公众平台开发
- Io 异常: The Network Adapter could not establish the connection 解决方法
- 9.9---n皇后问题(CC150)
- 使用Maven编译项目遇到——“maven编码gbk的不可映射字符”解决办法 ——转载
- 提取图像(tif)中水体的矢量数据(shp)研究
- Binder机制,从Java到C (4. Parcel)
- 201521123098 JAVA课程设计
- spring boot高性能实现二维码扫码登录(中)——Redis版
- Zigbee技术开发一 设置NV_RESTORE
- Linux内核入门到放弃-Ext2数据结构-《深入Linux内核架构》笔记
- Sklearn中二分类问题的交叉熵计算
- 哪个 Linux 内核版本号是 “稳定的”? | Linux 中国
- Intersect交集Except差集Union并集实例
- 使用jquery刷新当前页面、刷新父级页面
- memcached 一致性hash原理
- 邮件的DNS设置
- JavaScript 之arguments、caller 和 callee 介绍
- APScheduler 浅析