2017-05-31 21 views
0

Ich schreibe ein GO-Skript, um zu überprüfen, ob der Mongo-Server läuft. Mein Code ist wie,GOLANG überprüfen, ob mongodb läuft

import "bytes" 
import "os/exec" 
import "fmt" 

func main() { 
    cmd := exec.Command("ps", "-ef", "|", "grep", "mongod", "|", "grep", "-v", "grep", "|", "wc", "-l", "|", "tr", "-d", "'", "'") 

    fmt.Println(cmd) 
    var out bytes.Buffer 
    var stderr bytes.Buffer 
    cmd.Stdout = &out 
    cmd.Stderr = &stderr 
    err := cmd.Run() 
    if err != nil { 
     fmt.Println(fmt.Sprint(err) + ": " + stderr.String()) 
     return 
    } 
    fmt.Println("Result: " + out.String()) 
} 

Aber Getting Error as, "beenden Status 1: Fehler: Müll Option". Gibt es eine andere Möglichkeit, dies mit GOLANG zu überprüfen? Lass es mich wissen, bitte.

+0

Hier finden Sie ein start_stop_restart Skript für mongodb mit bash. Es gibt auch einen sehr kurzen Befehl :) https://github.com/patrick0585/Mongo_Start_Stop/blob/master/mongo_start_stop.sh Ihr Befehl kann ps -ef | sein awk/[m] ongodb/ –

+0

Und vielleicht hilft dir dieser Beitrag, mit golang zu überprüfen, wie der Prozess läuft. https://stackoverflow.com/questions/15204162/check-if-a-process-exists-in-go-way –

+0

@ Patrick85 Aber wie man diese PID mit gehen Skript, da es immer noch gleichen Fehler mit kurzen Befehl zurückgibt .. – Priyanka

Antwort

0

Wenn Sie über die Portierung eine Bash-Skript gehen mögen, gehen (was oft mehr Mühe, als es wert ist), können Sie die mgo library tatsächlich verwenden, um zu einer MongoDB Instanz zu verbinden und überprüfen, ob es gesund ist:

package main 

import (
    "gopkg.in/mgo.v2" 
    "fmt" 
    "os" 
) 

func main() { 
    sess, err := mgo.Dial("localhost") 
    if err != nil { 
     fmt.Println(err) 
     os.Exit(1) 
    } 
    defer sess.Close() 
    err = sess.Ping() 
    if err != nil { 
     fmt.Println(err) 
     os.Exit(1) 
    } 
    fmt.Println("MongoDB server is healthy.") 
    os.Exit(0) 
} 
+0

Ich glaube, du wolltest hier einen Link einfügen? –

+0

Guter Fang. Ich habe heute Morgen einen Koffeinmangel. – Adrian

+0

@Adrian Eigentlich ist es mein Ziel, den Mongo Server neu zu starten, wenn es nicht funktioniert. Und ich denke, das kann ich mit der mgo-Bibliothek nicht erreichen. Ist es möglich? – Priyanka

Verwandte Themen