中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Go打包二進制文件的實現

發布時間:2020-10-01 14:46:14 來源:腳本之家 閱讀:414 作者:趙栩彬 欄目:編程語言

背景

眾所周知,go語言可打包成目標平臺二進制文件是其一大優勢,如此go項目在服務器不需要配置go環境和依賴就可跑起來。

操作

需求:打包部署到centos7
筆者打包環境:mac os
方法:進入main.go所在目錄,輸入如下命令,當前目錄便會生成main的可執行文件

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

Go打包二進制文件的實現

Windows平臺打包到Linux執行不一樣,需要輸入如下命令

set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build
  • CGO_ENABLED 表示不使用cgo
  • GOOS 表示目標平臺系統(Windows,linux,darwin「mac os」等等)
  • GOARCH 表示目標系統架構(arm arm64 386 amd64 等等)

打包完成后,將二進制文件放到服務器系統,賦可執行權限:

chmod 773 main

直接運行即可:

./main

或后臺執行:

nohup ./main 1>info.log 2>&1 &

linux 后臺運行程序

一般為了程序后臺運行,我們需要使用nohup命令.
此時需要對程序運行時所產生的輸出信息記錄,因此就需要使用linux的信息輸出命令

一個例子

比如要讓redis-server程序后臺運行
1.非后臺運行:

$> ./redis-server

2.后臺運行:

$> nohup ./redis-server 1>/dev/null 2>&1 &
  • 其中數字1代表標準輸出,2代表錯誤信息輸出,還有未使用的標準輸入即數字0.
  • 1>/dev/null 2>&1 &的意思是標準信息輸出到空設備即不做任何處理,也不做任何顯示,/dev/null也可以替換為文本文件名(如 out.log),此時標準信息就會輸出到指定文件.
  • 2>&1表示錯誤信息輸出到標準輸出,即輸出同1>后面的位置,當然也可以直接指定新文件名(如 err.log).
  • 最后的& 表示程序后臺運行

上面的命令還可簡寫:

nohup ./redis-server >/dev/null 2>&1 &

即去掉標準輸出數字1

后臺運行一個程序

1.先用 netstat -tln 查看端口信息
2.isof -i:端口 可以找到程序進程號PID
3.kill PID 可以關閉程序

如此便是go打包到linux平臺的完整操作,歡迎大家指證。

到此這篇關于Go打包二進制文件的實現的文章就介紹到這了,更多相關Go打包二進制文件內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云! 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

靖西县| 萨嘎县| 哈巴河县| 开江县| 竹山县| 嘉义市| 梅州市| 寿阳县| 古蔺县| 白河县| 杭锦后旗| 沙湾县| 瑞丽市| 长武县| 丹凤县| 祁东县| 渝北区| 乐清市| 周至县| 福安市| 麦盖提县| 神木县| 都昌县| 伊金霍洛旗| 阜新| 岢岚县| 淳安县| 贵德县| 呼伦贝尔市| 弋阳县| 平江县| 桐梓县| 勐海县| 太和县| 遂昌县| 分宜县| 华容县| 兴仁县| 丰城市| 蒙山县| 沂南县|