golang守護進程用法示例
本文實例講述了golang守護進程用法。分享給大家供大家參考,具體如下:
用node寫了一個socket后臺服務(wù),可是有時候會掛,node一個異常就game over了,所以寫了一個守候.
import (
"log"
"os"
"os/exec"
"time"
)
func main() {
lf, err := os.OpenFile("angel.txt", os.O_CREATE | os.O_RDWR | os.O_APPEND, 0600)
if err != nil {
os.Exit(1)
}
defer lf.Close()
// 日志
l := log.New(lf, "", os.O_APPEND)
for {
cmd := exec.Command("/usr/local/bin/node", "/*****.js")
err := cmd.Start()
if err != nil {
l.Printf("%s 啟動命令失敗", time.Now().Format("2006-01-02 15:04:05"), err)
time.Sleep(time.Second * 5)
continue
}
l.Printf("%s 進程啟動", time.Now().Format("2006-01-02 15:04:05"), err)
err = cmd.Wait()
l.Printf("%s 進程退出", time.Now().Format("2006-01-02 15:04:05"), err)
time.Sleep(time.Second * 1)
}
}
這里還有一個shell實現(xiàn)的. 記得給予執(zhí)行權(quán)限哦,chmod +x you_command
while true; do
./you_command
done
希望本文所述對大家Go語言程序設(shè)計有所幫助。
相關(guān)文章
go語言規(guī)范RESTful?API業(yè)務(wù)錯誤處理
這篇文章主要為大家介紹了go語言規(guī)范RESTful?API業(yè)務(wù)錯誤處理方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
如何在 ubuntu linux 上配置 go 語言的 qt 開發(fā)環(huán)境
這篇文章主要介紹了如何在 ubuntu linux 上配置 go 語言的 qt 開發(fā)環(huán)境,本文分步驟通過實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04
Go語言中轉(zhuǎn)換JSON數(shù)據(jù)簡單例子
這篇文章主要介紹了Go語言中轉(zhuǎn)換JSON數(shù)據(jù)簡單例子,本文先定義了一個結(jié)構(gòu)體,然后把JSON綁定到結(jié)構(gòu)體上實現(xiàn)讀取,需要的朋友可以參考下2014-10-10
Golang中實現(xiàn)類似類與繼承的方法(示例代碼)
這篇文章主要介紹了Golang中實現(xiàn)類似類與繼承的方法,Go語言中通過方法接受者的類型來決定方法的歸屬和繼承關(guān)系,本文通過示例代碼講解的非常詳細,需要的朋友可以參考下2024-04-04
Go項目在GoLand中導(dǎo)入依賴標(biāo)紅問題的解決方案
這篇文章主要介紹了Go項目在GoLand中導(dǎo)入依賴標(biāo)紅問題的解決方案,文中通過代碼示例講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-06-06

