如果合约进程没有准备好,killProcess不要阻塞
killProcess(sig os.Signal)逻辑改为:
func (p *Process) killProcess(sig os.Signal) error {
select {
case <-p.cmdReadyCh:
p.logger.Debugf("[%s] start to kill process", p.getTxId())
if p.cmd == nil {
return errors.New("process cmd is nil")
}
if err := p.cmd.Process.Signal(sig); err != nil {
return fmt.Errorf("failed to kill process, %v", err)
}
return nil
default:
p.logger.Warnf("[%s] process is not ready", p.getTxId())
return nil
}
}