golang守護(hù)進(jìn)程用法示例
本文實(shí)例講述了golang守護(hù)進(jìn)程用法。分享給大家供大家參考,具體如下:
用node寫了一個(gè)socket后臺(tái)服務(wù),可是有時(shí)候會(huì)掛,node一個(gè)異常就game over了,所以寫了一個(gè)守候.
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 啟動(dòng)命令失敗", time.Now().Format("2006-01-02 15:04:05"), err)
time.Sleep(time.Second * 5)
continue
}
l.Printf("%s 進(jìn)程啟動(dòng)", time.Now().Format("2006-01-02 15:04:05"), err)
err = cmd.Wait()
l.Printf("%s 進(jìn)程退出", time.Now().Format("2006-01-02 15:04:05"), err)
time.Sleep(time.Second * 1)
}
}
這里還有一個(gè)shell實(shí)現(xiàn)的. 記得給予執(zhí)行權(quán)限哦,chmod +x you_command
while true; do
./you_command
done
希望本文所述對大家Go語言程序設(shè)計(jì)有所幫助。
相關(guān)文章
golang基礎(chǔ)之字符串與int、int64類型互相轉(zhuǎn)換
這篇文章主要給大家介紹了關(guān)于golang基礎(chǔ)之字符串與int、int64類型互相轉(zhuǎn)換的相關(guān)資料,在Go語言中string轉(zhuǎn)int是一項(xiàng)常見的操作,需要的朋友可以參考下2023-07-07Go中函數(shù)的使用細(xì)節(jié)與注意事項(xiàng)詳解
在Go語言中函數(shù)可是一等的(first-class)公民,函數(shù)類型也是一等的數(shù)據(jù)類型,下面這篇文章主要給大家介紹了關(guān)于Go中函數(shù)的使用細(xì)節(jié)與注意事項(xiàng)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11