github.com/secure-build/gitlab-runner@v12.5.0+incompatible/executors/custom/process/killer_windows.go (about)

     1  package process
     2  
     3  import (
     4  	"os"
     5  
     6  	"gitlab.com/gitlab-org/gitlab-runner/common"
     7  )
     8  
     9  type windowsKiller struct {
    10  	logger  common.BuildLogger
    11  	process *os.Process
    12  }
    13  
    14  func NewKiller(logger common.BuildLogger, process *os.Process) Killer {
    15  	return &windowsKiller{
    16  		logger:  logger,
    17  		process: process,
    18  	}
    19  }
    20  
    21  func (pk *windowsKiller) Terminate() {
    22  	err := pk.process.Kill()
    23  	if err != nil {
    24  		pk.logger.Errorln("Failed to terminate:", err)
    25  
    26  		pk.ForceKill()
    27  	}
    28  }
    29  
    30  func (pk *windowsKiller) ForceKill() {
    31  	err := pk.process.Kill()
    32  	if err != nil {
    33  		pk.logger.Errorln("Failed to force-kill:", err)
    34  	}
    35  }