首頁 > 後端開發 > Golang > 主體

如何使用systemd部署和守護golang應用程式

PHPz
發布: 2023-04-05 09:43:27
原創
1341 人瀏覽過

在雲端運算時代,快速部署可以讓開發人員迅速交付產品、快速回應使用者需求。 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!