golang編譯程序在linux上的部署

本文主要介紹在window環境下,使用開發工具liteide對go程序進行交叉編譯(在一個平臺上生成另一個平臺的可執行程序),將生成的可執行文件部署在Linux服務器上,使我們開發的程序能直接運行在linux上。

開發環境

開發環境為 :windows

開發IDE為:liteidex


操作步驟

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)


如有不對歡迎指正,相互學習,共同進步。

————————————————

版權聲明:本文為CSDN博主「wade3015」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/wade3015/article/details/83387212

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,247評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,520評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,362評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,805評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,541評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,896評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,887評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,062評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,608評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,356評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,555評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,077評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,769評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,175評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,489評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,289評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,516評論 2 379

推薦閱讀更多精彩內容