mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-17 12:42:16 +01:00
rolling back to an easier solution for executing unoconv as previous one did not remove zombies
This commit is contained in:
@@ -5,7 +5,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"syscall"
|
|
||||||
|
|
||||||
"github.com/phayes/freeport"
|
"github.com/phayes/freeport"
|
||||||
"github.com/thecodingmachine/gotenberg/internal/pkg/conf"
|
"github.com/thecodingmachine/gotenberg/internal/pkg/conf"
|
||||||
@@ -110,26 +109,11 @@ func unoconv(ctx context.Context, logger xlog.Logger, fpath, destination string,
|
|||||||
"unoconv",
|
"unoconv",
|
||||||
args...,
|
args...,
|
||||||
)
|
)
|
||||||
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
xexec.LogBeforeExecute(logger, cmd)
|
xexec.LogBeforeExecute(logger, cmd)
|
||||||
if err := cmd.Start(); err != nil {
|
return cmd.Run()
|
||||||
return err
|
|
||||||
}
|
|
||||||
result := make(chan error, 1)
|
|
||||||
go func() {
|
|
||||||
result <- cmd.Wait()
|
|
||||||
}()
|
|
||||||
select {
|
|
||||||
case err := <-result:
|
|
||||||
syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
|
|
||||||
return err
|
|
||||||
case <-ctx.Done():
|
|
||||||
syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
|
|
||||||
return ctx.Err()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if err := resolver(); err != nil {
|
if err := resolver(); err != nil {
|
||||||
return xerror.New(op, err)
|
return xerror.New(op, err)
|
||||||
|
|||||||
Reference in New Issue
Block a user