diff --git a/base/cli/cli.go b/base/cli/cli.go index b7353527..2d09616f 100644 --- a/base/cli/cli.go +++ b/base/cli/cli.go @@ -71,6 +71,7 @@ func NodeInfo(m *ice.Message, kind, name string) { const ( MAKE = "make" + TEST = "test" CONF = "conf" HOST = "host" BOOT = "boot" diff --git a/base/cli/daemon.go b/base/cli/daemon.go index 0a00902e..4ee1ebff 100644 --- a/base/cli/daemon.go +++ b/base/cli/daemon.go @@ -52,6 +52,10 @@ func _daemon_show(m *ice.Message, cmd *exec.Cmd, out, err string) { m.Cmd(mdb.MODIFY, DAEMON, "", mdb.HASH, kit.MDB_HASH, h, kit.MDB_STATUS, STOP) } + if m.Option(AUTO_RESTART) == ice.TRUE { + m.Cmd(DAEMON, START) + } + if w, ok := m.Optionv(CMD_OUTPUT).(io.Closer); ok { w.Close() } @@ -71,10 +75,12 @@ const ( ERR = "err" ) const ( - RESTART = "restart" - START = "start" ERROR = "error" + START = "start" + RESTART = "restart" STOP = "stop" + + AUTO_RESTART = "auto_restart" ) const DAEMON = "daemon" @@ -90,16 +96,16 @@ func init() { }}, DAEMON: {Name: "daemon hash auto start prunes", Help: "守护进程", Action: map[string]*ice.Action{ - RESTART: {Name: "restart", Help: "重启", Hand: func(m *ice.Message, arg ...string) { - m.Cmd(DAEMON, STOP) - m.Sleep("3s") - m.Cmdy(DAEMON, START) - }}, START: {Name: "start cmd env dir", Help: "添加", Hand: func(m *ice.Message, arg ...string) { m.Option(CMD_DIR, m.Option(DIR)) m.Option(CMD_ENV, kit.Split(m.Option(ENV), " =")) m.Cmdy(DAEMON, kit.Split(m.Option(CMD))) }}, + RESTART: {Name: "restart", Help: "重启", Hand: func(m *ice.Message, arg ...string) { + m.Cmd(DAEMON, STOP) + m.Sleep("3s") + m.Cmdy(DAEMON, START) + }}, STOP: {Name: "stop", Help: "停止", Hand: func(m *ice.Message, arg ...string) { m.Option(mdb.FIELDS, "time,hash,status,pid,cmd,dir,env") m.Cmd(mdb.SELECT, DAEMON, "", mdb.HASH, kit.MDB_HASH, m.Option(kit.MDB_HASH)).Table(func(index int, value map[string]string, head []string) { diff --git a/misc.go b/misc.go index 49a2bd5a..c5bab657 100644 --- a/misc.go +++ b/misc.go @@ -315,6 +315,9 @@ func (m *Message) Status(arg ...interface{}) { } m.Option(MSG_STATUS, kit.Format(list)) } +func (m *Message) StatusTimeCount(arg ...interface{}) { + m.Status(kit.MDB_TIME, m.Time(), kit.MDB_COUNT, m.FormatSize(), arg) +} func (m *Message) Process(action string, arg ...interface{}) { m.Option(MSG_PROCESS, action)