多進程管理工具:goreman

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Linux下多進程管理工具對開發和營運都很有用,常見的功能全面的主流工具主要有monit、supervisor。不過開發中使用則推薦輕量級小工具goreman。

goreman是對Ruby下廣泛使用的foreman的重寫,畢竟基於golang的工具簡單易用多了。順便提一句:goreman的作者是mattn,在golang社區挺活躍的日本的一名程式員。foreman原作者也實現了一個golang版:forego,不過沒有goreman好用,舉個例子:coreos的etcd就是使用的goreman來一鍵啟停單機版的etcd叢集。

安裝

go工具安裝都非常簡單:

go get github.com/mattn/goremangoreman help

當然,記得先把GOPATH、GOROOT環境變數配置好,並記得把$GOPATH/bin添加到$PATH

使用

由於是小工具,參考goreman help基本就足夠了。簡單的使用步驟:

  1. 建立一個Procfile檔案,如果改名則需要goreman -f指定。

  2. 在包含Procfile的目錄下執行:goreman start

  3. 關閉時直接ctrl-c推出,goreman會自動把所有啟動的進程都shut down

舉例

以Apache kafka的使用為例,瞭解的朋友應該知道,kafka使用時通常需要啟動兩個進程:一個zookeeper,一個kafka broker,因此可以編寫一個kafka開發環境的Procfile:

zookeeper: bash ~/tool/kafka_2.11-0.8.2.1/bin/zookeeper-server-start.sh config/zookeeper.propertiesbroker: bash ~/tool/kafka_2.11-0.8.2.1/bin/kafka-server-start.sh config/server.properties

然後執行goreman start,可以看到不同顏色區分的zookeeper、kafka broker進程的開機記錄:

11:04:10 zookeeper | Starting zookeeper on port 500011:04:10    broker | Starting broker on port 5001...

關閉時,直接ctrl-c,則兩個bash進程也會被自動關閉。

進階用法

上述是最簡單的使用情境:直接使用goreman start,不過有個缺點,即goreman綁定到了當前的session,而且不能靈活控制多個進程啟停以及順序。而實際開發過程中,通常需要經常單獨啟停某個正在開發的模組相關的進程,比如上面例子中的kafka-broker,而Zookeeper通常不需要頻繁啟停。

可以使用更進階的goreman run命令來實現,如:

# 先啟動Zookeepergoreman run start zookeeper# 然後啟動kafkagoreman run start broker# 查看進程狀態goreman run status# 停止broker進程goreman run stop broker# 重啟broker進程goreman run restart broker

總結

多進程管理是目前開發尤其是互連網web、伺服器後端很常用的工具,尤其上雲之後,雲應用普遍推崇的microservices微服務架構進一步增加了後端進程數。而goreman很適合開發環境使用,能夠一鍵式管理多個後台進程,並及時清理環境。不過真正的生產環境,還是使用monit/m、supervisor等更成熟穩定、功能全面的多進程管理工具。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.