go 守护进程
方便进行自动拉起
/*
* Email: me@dreamyouxi.com
go ChatServer Deamon process
*/
package main
import "fmt"
import "time"
import "os"
//main func for start up server
func main() {
for {
//record std error to file
ff, er := os.OpenFile("go_stderr.txt",os.O_WRONLY | os.O_CREATE | os.O_APPEND, 0766)
if er!=nil{
continue;
}
proc, err := os.StartProcess("ChatServer.exe", nil, &os.ProcAttr{Files: []*os.File{os.Stdin, os.Stdout,ff}})
if err!=nil{
}
_,err = proc.Wait();
ff.WriteString(time.Now().Format("--------[2006-01-02 15:04:05]") )
ff.WriteString("\r\n\r\n");
ff.Close();
// 进程启动需要等待3s 如果是crash时 需要等待系统回收进程资源
fmt.Println("-------------ChatServer crash will restart after 3 second");
time.Sleep(time.Duration(3)*time.Second)
}
}