亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

適用于 Golang 應用程序的類似 PM2 的流程管理解決方案?

適用于 Golang 應用程序的類似 PM2 的流程管理解決方案?

Go
飲歌長嘯 2023-07-26 15:35:06
Go 有類似于 NodeJS PM2 的進程管理器嗎?PM2.5的基本特點:無限期地在后臺運行應用程序,例如服務器等待請求。重新啟動后重新啟動應用程序。編者注:PM2 提供了一種在后臺永遠運行 NodeJS 應用程序的簡單方法,例如用于生產服務器。當然,您可以使用 Linux 操作系統,使用不特定于任何特定編程語言的工具來完成此操作,這些答案很有幫助。由于 Go 可以創建可執行文件,因此您實際上不需要針對此問題的 Go 語言特定解決方案。
查看完整描述

1 回答

?
慕田峪9158850

TA貢獻1794條經驗 獲得超7個贊

開發環境

對于開發,您可能需要進程管理器來監視文件更改并實時重新加載服務器二進制文件。

我習慣使用Godegansta 的?杜松子酒來完成 Web 服務器/API 服務器開發的此類工作。還有新鮮的、條件反射的,或許還有?其他一些。


生產環境

我正在生產環境中使用 systemd 來管理 Linux 上的 Golang 應用程序進程。

定義單位

我的單元文件如下所示:

[Unit]


[Install]

WantedBy=multi-user.target


[Service]

ExecStart=/usr/local/bin/<MY_GO_APP>

WorkingDirectory=/home/user/<MY_GO_APP_HOME_DIR>

User=<MY_GO_APP_USER>

Restart=always

RestartSec=5

StandardOutput=syslog

StandardError=syslog

SyslogIdentifier=%n

創建此文件/etc/systemd/system/my_app.service,然后運行:


systemctl start my_app.service

會自動啟動該服務。根據配置,如果進程停止,systemd 將始終重新啟動您的進程。


日常操作

要在機器啟動時使其始終打開:


systemctl enable my_app.service

start如果您在第一個或之后更改單元文件enable,則需要運行:


systemctl daemon-reload

要查看進程的狀態,請運行:


systemctl status my_app.service

要查看進程的 STDOUT,請運行:


journalctl -f -u my_app.service


查看完整回答
反對 回復 2023-07-26
  • 1 回答
  • 0 關注
  • 218 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號