package stream import ( "rkkvm/config" "time" log "github.com/sirupsen/logrus" ) var ustreamer *UStreamer type UStreamer struct { *ExtProcess config.UStreamer } func InitUStreamer(path string, args []string) *UStreamer { ustreamer = &UStreamer{ ExtProcess: Init(path, args), UStreamer: config.Get().UStreamer, } return ustreamer } func GetUStreamer() *UStreamer { return ustreamer } func (u *UStreamer) MonitorState() { ticker := time.NewTicker(1 * time.Second) defer ticker.Stop() for { select { case <-ticker.C: { state, err := GetState() if err != nil { u.state = State{} log.Errorf("Failed to get process state: %v", err) continue } u.state = state } } } } func (u *UStreamer) GetState() State { return u.state }