1 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
開發(fā)環(huán)境
對(duì)于開發(fā),您可能需要進(jìn)程管理器來監(jiān)視文件更改并實(shí)時(shí)重新加載服務(wù)器二進(jìn)制文件。
我習(xí)慣使用Godegansta 的?杜松子酒來完成 Web 服務(wù)器/API 服務(wù)器開發(fā)的此類工作。還有新鮮的、條件反射的,或許還有?其他一些。
生產(chǎn)環(huán)境
我正在生產(chǎn)環(huán)境中使用 systemd 來管理 Linux 上的 Golang 應(yīng)用程序進(jìn)程。
定義單位
我的單元文件如下所示:
[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
創(chuàng)建此文件/etc/systemd/system/my_app.service,然后運(yùn)行:
systemctl start my_app.service
會(huì)自動(dòng)啟動(dòng)該服務(wù)。根據(jù)配置,如果進(jìn)程停止,systemd 將始終重新啟動(dòng)您的進(jìn)程。
日常操作
要在機(jī)器啟動(dòng)時(shí)使其始終打開:
systemctl enable my_app.service
start如果您在第一個(gè)或之后更改單元文件enable,則需要運(yùn)行:
systemctl daemon-reload
要查看進(jìn)程的狀態(tài),請(qǐng)運(yùn)行:
systemctl status my_app.service
要查看進(jìn)程的 STDOUT,請(qǐng)運(yùn)行:
journalctl -f -u my_app.service
- 1 回答
- 0 關(guān)注
- 249 瀏覽
添加回答
舉報(bào)