首頁 > 後端開發 > Golang > 設定golang 守護程式

設定golang 守護程式

WBOY
發布: 2023-05-15 09:15:37
原創
1111 人瀏覽過

在開發和部署Go應用程式時,我們經常需要將它們配置為守護進程,以便它們可以在後台運行並在系統啟動時自動啟動。本文將介紹如何設定Go應用程式作為守護進程,以便您可以輕鬆控制和管理您的應用程式。

1.使用systemd

systemd是一種守護程式系統和系統管理器,可用於在Linux系統中管理和監控系統程式。安裝systemd並將Go應用程式配置為Systemd服務後,您可以使用systemctl命令來啟動、停止和重新載入您的服務。

以下是如何將Go應用程式配置為Systemd服務的簡單步驟:

  1. #建立systemd服務檔案
##使用您最喜歡的文字編輯器會建立一個新文件,將以下內容複製並貼上到文件中:

[Unit]

Description=My Go Service
After=network.target
##[Service]

User=

Group=
ExecStart=
Restart=always

[Install]

WantedBy=multi-user.target


請注意取代以下參數:

Description:服務的描述。
  • User:要執行應用程式的使用者。
  • Group:應用程式的使用者所屬的群組。
  • ExecStart:Go應用程式的絕對路徑。
  • Restart:服務停止後自動重新啟動。
  • 2.將檔案儲存為.service檔案

將檔案儲存為“mygo.service”,並將其放在“/etc/systemd/system”目錄中。這將使Systemd能夠在啟動時載入該服務檔案。

3.重新載入Systemd

執行以下命令以重新載入Systemd並使其能夠感知新的服務檔案:

sudo systemctl daemon-reload

4.啟動服務

執行以下指令以啟動服務:

sudo systemctl start mygo.service

5.檢查服務狀態

執行下列指令以檢查您的服務是否正在執行:

sudo systemctl status mygo.service

如果狀態為“running”,則表示服務正在執行。

2.使用supervisor

Supervisor是一種在Unix系統上管理和監控進程的應用程式。它可以輕鬆管理您的Go應用程序,也支援自動重新啟動和記錄輸出等功能。

以下是如何在Ubuntu上設定Supervisor以守護Go應用程式的步驟:

安裝Supervisor
  1. ##sudo apt-get install supervisor
2.建立Supervisor配置

使用您喜歡的文字編輯器建立一個新文件,將以下內容複製並貼上到文件中:

[program:mygo]

command=/usr/bin/go run /path/to/your/go/app

user=

autostart=true
autorestart=true
stderr_logfile=/var/log /mygo.err.log
stdout_logfile=/var/log/mygo.out.log

請注意取代下列參數:

program:Supervisor程式的名稱。

    command:Go應用程式的絕對路徑。
  • user:要執行應用程式的使用者。
  • stderr_logfile:記錄錯誤日誌的檔案路徑。
  • stdout_logfile:記錄標準輸出日誌的檔案路徑。
  • 3.將檔案儲存為.conf檔案
將檔案儲存為“mygo.conf”,並將其放在“/etc/supervisor/conf.d”目錄中。

4.重新載入Supervisor

執行以下命令以重新載入Supervisor並使其能夠感知新的supervisor服務檔案:

sudo supervisorctl reread

5.啟動服務

執行以下命令以啟動服務:

sudo supervisorctl start mygo

6.檢查服務狀態

執行以下命令以檢查您的服務是否正在運行:

sudo supervisorctl status mygo

#如果狀態為“running”,則表示服務正在運行。

總結

無論您選擇使用systemd或Supervisor,它們都是管理和監控Linux進程的強大工具。使用這些工具將Go應用程式配置為守護進程可協助您方便地控制和管理您的應用程序,並確保它們在系統啟動時自動啟動。

以上是設定golang 守護程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板