mirror of https://github.com/dnomd343/XProxy.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
803 B
31 lines
803 B
package process
|
|
|
|
import (
|
|
log "github.com/sirupsen/logrus"
|
|
"time"
|
|
)
|
|
|
|
func daemonSub(sub *Process) {
|
|
for sub.process.ProcessState == nil { // until process exit
|
|
sub.Wait()
|
|
}
|
|
log.Warningf("Catch process %s exit", sub.name)
|
|
time.Sleep(3 * time.Second) // delay 3s
|
|
if !exitFlag { // not in exit process
|
|
sub.Run(true)
|
|
log.Infof("Process %s restart success", sub.name)
|
|
daemonSub(sub)
|
|
}
|
|
}
|
|
|
|
func (p *Process) Daemon() {
|
|
if p.process == nil { // process not running
|
|
log.Infof("Process %s disabled -> skip daemon", p.name)
|
|
return
|
|
}
|
|
log.Infof("Daemon of process %s start", p.name)
|
|
go func() {
|
|
daemonSub(p) // start daemon process
|
|
log.Infof("Process %s exit daemon mode", p.name)
|
|
}()
|
|
}
|
|
|