使用systemd部署和守護(hù)golang應(yīng)用程序的操作方法
在云計(jì)算時(shí)代,快速部署可以讓開發(fā)人員迅速交付產(chǎn)品、快速響應(yīng)用戶需求。golang 成為了近年云計(jì)算領(lǐng)域不可或缺的編程語言,它結(jié)合了快速編譯和高效的并發(fā)性能。但是如果應(yīng)用程序崩潰了怎么辦?為了保持應(yīng)用程序的持續(xù)運(yùn)行,我們需要使用守護(hù)程序?qū)?yīng)用程序進(jìn)行監(jiān)控和重啟。本文將介紹如何使用 systemd 來部署和守護(hù) golang 應(yīng)用程序。
一、安裝和配置 systemd
systemd 是當(dāng)今最流行的初始化和守護(hù)進(jìn)程管理系統(tǒng)之一。它負(fù)責(zé)啟動(dòng)系統(tǒng)服務(wù)和守護(hù)進(jìn)程,還能監(jiān)視它們的狀態(tài)并在有需要的時(shí)候進(jìn)行重啟。在使用 systemd 之前,必須先安裝它。
使用以下命令安裝 systemd:
$ sudo apt-get update $ sudo apt-get install -y systemd
二、創(chuàng)建服務(wù)文件
在創(chuàng)建守護(hù)程序之前,我們需要?jiǎng)?chuàng)建一個(gè) systemd 服務(wù)文件。服務(wù)文件是一個(gè)包含描述服務(wù)的信息的文本文件。服務(wù)文件的位置在 /etc/systemd/system/
目錄下。例如,我們創(chuàng)建一個(gè)名為 golang-demo.service
的服務(wù)文件:
$ sudo touch /etc/systemd/system/golang-demo.service
編輯 golang-demo.service
文件:
$ sudo nano /etc/systemd/system/golang-demo.service
在文件中添加以下內(nèi)容:
[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]
部分包含服務(wù)名稱和描述,以及該服務(wù)應(yīng)該在何時(shí)啟動(dòng)(在network.target
后)。[Service]
部分描述了啟動(dòng)服務(wù)的詳細(xì)信息,包括使用的用戶,組,以及啟動(dòng)腳本文件的位置。[Install]
部分規(guī)定了 systemd 應(yīng)該在哪個(gè)目標(biāo)身上啟動(dòng)該服務(wù)。
三、創(chuàng)建 golang 應(yīng)用程序
接下來,我們需要?jiǎng)?chuàng)建一個(gè) golang 應(yīng)用程序,名為 golang-demo
。在 terminal 中,使用以下 git 命令克隆一個(gè)簡單的 go 應(yīng)用程序:
$ git clone https://github.com/shalar/golang-demo.git
進(jìn)入項(xiàng)目目錄,并構(gòu)建和編譯應(yīng)用程序:
$ cd golang-demo $ go build
我們需要將生成的二進(jìn)制文件 golang-demo
移動(dòng)到 /usr/local/bin
目錄中。
$ sudo mv golang-demo /usr/local/bin/
四、啟動(dòng)服務(wù)并進(jìn)行測試
現(xiàn)在,我們已準(zhǔn)備好啟動(dòng)服務(wù)并測試它了。使用命令啟動(dòng)服務(wù):
$ sudo systemctl start golang-demo.service
查看服務(wù)的狀態(tài):
$ sudo systemctl status golang-demo.service
看到 active (running)
,表示服務(wù)正在運(yùn)行,可以通過瀏覽器訪問 http://localhost:8080,應(yīng)該可以看到輸出。
五、開機(jī)自啟動(dòng)
如前所述,在 [Install]
部分中,我們規(guī)定了 systemd 應(yīng)該在哪個(gè)目標(biāo)身上啟動(dòng)該服務(wù)。現(xiàn)在,我們可以使用以下命令進(jìn)行開機(jī)自啟動(dòng):
$ sudo systemctl enable golang-demo.service
現(xiàn)在,系統(tǒng)會(huì)在每次啟動(dòng)時(shí)自動(dòng)啟動(dòng)服務(wù)。
六、結(jié)論
本文介紹了如何使用 systemd 部署和守護(hù) golang 應(yīng)用程序。systemd 是一個(gè)流行的守護(hù)進(jìn)程管理器,可以輕松管理服務(wù)的啟動(dòng)、停止、重啟等操作,讓我們的應(yīng)用程序始終保持在線。
到此這篇關(guān)于如何使用systemd部署和守護(hù)golang應(yīng)用程序的文章就介紹到這了,更多相關(guān)systemd部署和守護(hù)golang內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
GOPROXY:解決go get golang.org/x包失敗問題
這篇文章主要介紹了GOPROXY:解決go get golang.org/x包失敗問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Go?Ginrest實(shí)現(xiàn)一個(gè)RESTful接口
這篇文章主要為大家介紹了Go?Ginrest實(shí)現(xiàn)一個(gè)RESTful接口示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08go實(shí)現(xiàn)thrift的網(wǎng)絡(luò)傳輸性能及需要注意問題示例解析
這篇文章主要為大家介紹了go實(shí)現(xiàn)thrift的網(wǎng)絡(luò)傳輸性能及需要注意問題示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09