1.交叉編譯
Windows 下編譯 Linux 64位可執行程式,這裡需要解釋一下
GOOS:目标平台的作業系統(darwin、freebsd、linux、windows)
GOARCH:目标平台的體系架構(386、amd64、arm) 交叉編譯不支援 CGO 是以要禁用它
具體指令如下:
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
首先進入cmd指令行,cd到go環境的安裝目錄下的src目錄;然後依次執行以下指令(執行前先安裝tdm64-gcc-4.8.1-3):
set GOOS=linux
set GOARCH=386
set CGO_ENABLED=0
make.bat
如果要生成64位linux下的運作程式則依次輸入下列指令:
set GOOS=linux
set GOARCH=amd64
set CGO_ENABLED=0
make.bat
如果要生成arm6下的運作程式則依次輸入下列指令:
set GOOS=linux
set GOARCH=arm
set GOARM=6
set CGO_ENABLED=0
make.bat
例如:我将go環境安裝在D:\Go下,并且我要生成64位linux下的運作程式;則我需要在cmd指令行下輸入:
C:\Users\Administrator>d:
D:\>cd d:/go/src
d:\Go\src> set GOOS=linux
d:\Go\src> set GOARCH=amd64
d:\Go\src> set CGO_ENABLED=0
d:\Go\src> make.bat
2.執行完第一步後,就可以在IDE中對GO程式進行交叉編譯了;在IDE中将編譯的環境變量設定為cross-linux64(根據需要選擇),然後點選檢視編輯環境變量,根據go的安裝配置好設定資訊,儲存!
3.進入到程式的工作路徑(即main程式所在路徑),go build main.go則會在項目根目錄生成相應的執行檔案,執行檔案名稱為根目錄的檔案名。将生成的執行檔案和程式一些其他的檔案(主要是一些和程式相關的配置檔案等靜态檔案)上傳到linux伺服器,例如使用beego架構,除了上傳執行檔案外還需要将views,static,conf等3個檔案夾上傳到伺服器。
特别強調一下,每次重新部署服務時,一定要記得同步更新配置檔案!!!
4.進入linux系統下剛剛上傳檔案的目錄,使用權限指令
chmod 777 程式名稱
然後使用使程式在背景運作的指令
nohup ./程式名 &
如果要關閉程式,可以使用指令”ps” 檢視背景程式的pid,然後使用“kill 程式pid”指令,關閉程式比如程式名為test,可以用如下指令查詢
ps aux|grep test
也可以通過top -u username檢視目前使用者下所有程序,找到test的pid然後使用“kill 程式pid”指令,關閉程式比如程式名為test
需要在前台運作,直接
./程式名
前台程序的挂起:
ctrl+Z //程序的終止
背景程序的終止:
方法一: 通過jobs指令檢視job号(假設為num),然後執行kill %num
方法二: 通過ps指令檢視job的程序号(PID,假設為pid),然後執行kill pid
前台程序的終止:
ctrl+c
在Linux伺服器上部署服務其他一些可能用到的指令有:
& 這個用在一個指令的最後,可以把這個指令放到背景執行
ps 列出系統中正在運作的程序
kill 發送信号給一個或多個程序(經常用來殺死一個程序)
jobs 檢視目前有多少在背景運作的指令
fg 将背景中的指令調至前台繼續運作
如果背景中有多個指令,可以用 fg %jobnumber将選中的指令調出,%jobnumber是通過jobs指令查到的背景正在執行的指令的序号(不是pid)
bg 将一個在背景暫停的指令,變成繼續執行
如果背景中有多個指令,可以用bg %jobnumber将選中的指令調出,%jobnumber是通過jobs指令查到的背景正在執行的指令的序号(不是pid)