Skip to content

Commit f004def

Browse files
committed
use process group.
1 parent 7795bb1 commit f004def

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

hls/manager.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,8 @@ func (m *ManagerCtx) Start() error {
9292
read, write := io.Pipe()
9393
m.cmd.Stdout = write
9494

95-
m.cmd.SysProcAttr = &syscall.SysProcAttr{
96-
Pdeathsig: syscall.SIGINT,
97-
}
95+
//create a new process group
96+
m.cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
9897

9998
m.active = false
10099
m.lastRequest = time.Now()
@@ -167,8 +166,15 @@ func (m *ManagerCtx) Stop() {
167166
close(m.shutdown)
168167

169168
if m.cmd.Process != nil {
170-
err := m.cmd.Process.Kill()
171-
m.logger.Err(err).Msg("killing proccess")
169+
pgid, err := syscall.Getpgid(m.cmd.Process.Pid)
170+
if err == nil {
171+
err := syscall.Kill(-pgid, syscall.SIGKILL)
172+
m.logger.Err(err).Msg("killing proccess group")
173+
} else {
174+
m.logger.Err(err).Msg("could not get proccess group id")
175+
err := m.cmd.Process.Kill()
176+
m.logger.Err(err).Msg("killing proccess")
177+
}
172178
m.cmd = nil
173179
}
174180

0 commit comments

Comments
 (0)