在雲端運算時代,快速部署可以讓開發人員迅速交付產品、快速回應使用者需求。 golang 成為了近年來雲端運算領域不可或缺的程式語言,它結合了快速編譯和高效的並發效能。但是如果應用程式崩潰了怎麼辦?為了保持應用程式的持續運行,我們需要使用守護程式對應用程式進行監控和重新啟動。本文將介紹如何使用 systemd 來部署和守護 golang 應用程式。
一、安裝和設定 systemd
systemd 是當今最受歡迎的初始化和守護程式管理系統之一。它負責啟動系統服務和守護進程,也能監視它們的狀態並在有需要的時候進行重新啟動。在使用 systemd 之前,必須先安裝它。
使用下列指令安裝 systemd:
$ sudo apt-get update $ sudo apt-get install -y systemd
二、建立服務檔案
在建立守護程式之前,我們需要建立一個 systemd 服務檔案。服務文件是一個包含描述服務的資訊的文字檔案。服務檔案的位置在 /etc/systemd/system/
目錄下。例如,我們建立一個名為golang-demo.service
的服務檔案:
$ sudo touch /etc/systemd/system/golang-demo.service
編輯golang-demo.service
檔案:
$ sudo nano /etc/systemd/system/golang-demo.service
在文件中加入以下內容:
[Unit] Description=My golang app After=network.target [Service] Type=simple User=ubuntu Group=ubuntu ExecStart=/usr/local/bin/golang-demo [Install] WantedBy=multi-user.target
其中,
[Unit]
部分包含服務名稱和描述,以及該服務應該在何時啟動(在network.target
後)。 [Service]
部分描述了啟動服務的詳細信息,包括使用的用戶,群組,以及啟動腳本檔案的位置。 [Install]
部分規定了 systemd 應該在哪個目標身上啟動該服務。 三、創建 golang 應用程式
接下來,我們需要建立一個 golang 應用程序,名稱為 golang-demo
#。在terminal 中,使用以下git 指令複製一個簡單的go 應用程式:
$ git clone https://github.com/shalar/golang-demo.git
進入專案目錄,並建置和編譯應用程式:
$ cd golang-demo $ go build
我們需要將產生的二進位檔案golang-demo
移到/usr/local/bin
目錄中。
$ sudo mv golang-demo /usr/local/bin/
四、啟動服務並進行測試
現在,我們已經準備好啟動服務並測試它了。使用命令啟動服務:
$ sudo systemctl start golang-demo.service
查看服務的狀態:
$ sudo systemctl status golang-demo.service
看到active (running)
,表示服務正在運行,可以透過瀏覽器存取http:/ /localhost:8080,應該可以看到輸出。
五、開機自啟動
如前所述,在 [Install]
部分中,我們規定了 systemd 應該在哪個目標身上啟動該服務。現在,我們可以使用以下命令進行開機自啟動:
$ sudo systemctl enable golang-demo.service
現在,系統會在每次啟動時自動啟動服務。
六、結論
本文介紹如何使用 systemd 部署和守護 golang 應用程式。 systemd 是一個受歡迎的守護程序管理器,可以輕鬆管理服務的啟動、停止、重新啟動等操作,讓我們的應用程式始終保持在線。
以上是如何使用systemd部署和守護golang應用程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!