一個簡單的多進程管理工具goreman

goreman是一個go語言編寫的多進程管理工具,是對Ruby下廣泛使用的foreman的重寫(foreman原作者也實現了一個golang版:forego,不過沒有goreman好用)。
相比較monit、supervisor而言要簡單的多,而且可以在項目級別管理進程,比較適合開發環境使用。比如快速運行和一項目相關的所有進程,goreman就可以派上用場。coreos的etcd就是使用的goreman來一鍵啓停單機版的etcd集羣。

安裝

首先需要有go語言的環境,然後下載工具編譯:

go get github.com/mattn/goreman

編譯後的文件放在$GOPATH/bin中,最好把$GOPATH/bin目錄添加到$PATH中,以便方便執行命令。

使用

可以運行以下命令來查看幫助信息:

goreman help

基本例子:

在我們的項目目錄下創建一個名爲Procfile文件,內容爲:

# 名稱: 命令
hello1: ./helloworld
hello2: ./helloworld
hello3: ./helloworld

然後運行goreman start,就會啓動三個運行helloworld命令的進程。
按ctrl-c會關閉所有的進程。

傳入參數:

我可以攜帶多個參數來運行,比如Procfile文件爲:

hello1: ./helloworld --name=$NAME --age=$AGE
hello2: ./helloworld
hello3: ./helloworld

運行命令爲

NAME=Song AGE=18 goreman start

運行單個命令

goreman start hello1

進程控制

當我們通過goreman start命令啓動了一組相關的進程後,我們可以在另外的shell中,進入到相同的目錄,執行一些進程控制的命令:

goreman run start hello 啓動指定的命令
goreman run stop hello 停止指定的進程
goreman run restart hello 重啓指定的進程
goreman run restart-all 重啓所有進程
goreman run status 查看進程列表和狀態,其中前面帶*號的標示正在運行中
goreman run list 查看命令名稱列表

其他命令都不太常用,請參考goreman help。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章