-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
88 lines (78 loc) · 2.51 KB
/
Copy pathMakefile
File metadata and controls
88 lines (78 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# variable
binaryName=baize-api
versionPath=github.com/haormj/version
version=v0.1.0
outputPath=_output
workingDirectory=`pwd`
ldLibraryPath=.:${LD_LIBRARY_PATH}:/usr/local/libtorch/lib:/usr/local/lib64
all: build
proto:
protoc --proto_path=${GOPATH}/src:. --micro_out=. --go_out=. idl/dogsvscats/dogs_vs_cats.proto
build: proto
@buildTime=`date "+%Y-%m-%d %H:%M:%S"`; \
CGO_CXXFLAGS="-g -O2 -D_GLIBCXX_USE_CXX11_ABI=1 \
-I /usr/local/libtorch/include \
-I /usr/local/libtorch/include/torch/csrc/api/include \
-I /usr/local/include/opencv4" \
CGO_LDFLAGS="-g -O2 \
-L/usr/local/libtorch/lib -L/usr/local/lib64 -lc10 -ltorch -lopencv_calib3d -lopencv_core \
-lopencv_dnn -lopencv_features2d -lopencv_flann -lopencv_gapi -lopencv_highgui \
-lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo \
-lopencv_stitching -lopencv_video -lopencv_videoio \
-lhaormj_vision -lhaormj_http -lcurl" \
go build -ldflags "-X '${versionPath}.Version=${version}' \
-X '${versionPath}.BuildTime=$$buildTime' \
-X '${versionPath}.GoVersion=`go version`' \
-X '${versionPath}.GitCommit=`git rev-parse --short HEAD`'" -o ${outputPath}/${binaryName}; \
run: build
LD_LIBRARY_PATH=${ldLibraryPath} ./_output/baize-api
clean:
rm -rf _output
rm -rf logs
.ONESHELL:
systemd:
cat > /etc/systemd/system/micro-api.service << EOF
[Unit]
Description=micro api
[Service]
LimitNOFILE=40960
LimitNPROC=40960
Type=simple
ExecStart=/path/to/micro api --handler=rpc --enable_cors false
Restart=always
RestartSec=2s
MemoryLimit=1G
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable micro-api
systemctl restart micro-api
cat > /etc/systemd/system/${binaryName}.service << EOF
[Unit]
Description=${binaryName}
After=micro-api.service
Requires=micro-api.service
[Service]
LimitNOFILE=40960
LimitNPROC=40960
Type=simple
Environment=LD_LIBRARY_PATH=${ldLibraryPath}
WorkingDirectory=${workingDirectory}
ExecStart=${workingDirectory}/${outputPath}/${binaryName}
Restart=always
RestartSec=2s
MemoryLimit=1G
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable ${binaryName}
systemctl restart ${binaryName}
systemd-status:
systemctl status micro-api
systemctl status ${binaryName}
systemd-stop:
systemctl stop micro-api
systemctl stop ${binaryName}
.PHONY: all proto build run systemd clean