1. 程式人生 > >關於GOGS的鉤子和守護程序

關於GOGS的鉤子和守護程序

Gogs是什麼呢?官方的說法是:Gogs 是一款極易搭建的自助 Git 服務。

那麼看完了之後,依然一頭霧水,這說的是啥?????

我們知道使用git的時候,遠端庫可以用github,或者自己Linux伺服器安裝git以後,建立一個自己的倉庫,無論是github的遠端倉庫還是我們自己在linux上建立的倉庫(相對於本地計算機來說,其實都相當於遠端倉庫),都可以在本地計算機上安裝客戶端進行遠端克隆。

而gogs是什麼呢?就是一個視覺化的git倉庫管理系統。相當於把github整搬到了你自己想要放置的地方,這樣你就可以在這套系統裡管理你的各個版本專案,功能基本和在github上使用區別不大。

那麼既然有了github為什麼還要自己弄這樣一個系統呢?主要是因為github公共的專案,是開放的,相對於企業來說,理論上誰都可以進行訪問並且把你的程式碼下載或者拷貝走,顯然企業是不希望這樣的,而我們自己安裝的一套管理系統,就可以自己來管理,獨立於github倉庫。

安裝方法參考文件就可以了,非常簡單,完全中文說明。

這裡要說的是鉤子和守護程序的問題。

鉤子:
使用git或者svn的時候,都有鉤子的涉及。鉤子是什麼呢?就是git或者svn在執行任務的時候,任務開始之前、進行當中、開始之後,不同的階段會觸發的一些操作,而哪個階段對應的可以進行哪些操作,記錄在了git或者svn的hooks目錄中的不同檔案中,具體可以參考文件或者網上找教程。

這裡要說的是,常規最常見的鉤子的使用,就是在我們本地計算機對專案檔案進行了更新並且同步到了遠端倉庫之後,我們希望能夠自動觸發一個操作,讓我們在線上的專案能夠自動更新到版本庫的最新版本。

這個時候,就需要用到鉤子了,如果我們遠端倉庫使用的是我們在伺服器中建立的倉庫,那麼我們的鉤子命令就要寫到倉庫中hooks目錄中的相應檔案中。而Gogs系統,同樣也有鉤子,和git的鉤子雷同,Gogs系統的倉庫目錄中有hooks目錄,其中存放的是處理不同任務的鉤子命令檔案,我們可以直接把命令寫到相應的檔案中去。

……………………………………………………………………………………………………………………………………………………

然後說守護程序,我們通常,Gogs系統下載解壓好了之後,在Gogs的根目錄,進行一個./Gogs web命令,系統就執行起來了,我們在瀏覽器輸入localhost:3000  就可以訪問到Gogs的視覺化配置頁面。在這個進行之前,還要建立一個伺服器的新使用者,名字叫git,並且用這個使用者去執行 ./Gogs web命令,然後按著localhost:3000視覺化配置頁面的內容進行配置。但是有一個問題,命令列執行的結果是這樣的:

命令列視窗處於進行中狀態,沒有辦法進行其他操作,退出當前命令列,Gogs服務停止,localhost:3000頁面不能顯示。這個時候,就需要我們以守護進行進行執行,也就是後臺執行,命令列視窗不影響使用:

首先根據自己的Gogs在伺服器中存放的位置進行如下命令:

sudo ln -sf /home/gogs/gogs/scripts/systemd/gogs.service /usr/lib/systemd/
sudo chmod u+x /home/gogs/gogs/scripts/systemd/gogs.service
sudo ln -sf /home/gogs/gogs/scripts/init/centos/gogs /etc/init.d/
sudo chmod u+x /home/gogs/gogs/scripts/init/centos/gogs
sudo /sbin/chkconfig gogs on
sudo service gogs restart

然後在執行:

nohup ./gogs web &

然後命令列是這樣的: