1 回答

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
- 1 回答
- 0 關注
- 218 瀏覽
添加回答
舉報