Skip to content

Commit 11020b7

Browse files
author
anahan
committed
Add logger to fpm process mngr
1 parent c53754a commit 11020b7

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

cmd/docker-fpm-wrapper/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func main() {
8787
}
8888

8989
fpmProcess := phpfpm.
90-
NewProcess(cfg.FpmPath, cfg.FpmConfigPath, os.Stdout, syncStderr, cfg.ShutdownDelay, env, findFpmArgs()...)
90+
NewProcess(log, cfg.FpmPath, cfg.FpmConfigPath, os.Stdout, syncStderr, cfg.ShutdownDelay, env, findFpmArgs()...)
9191

9292
if err = fpmProcess.Start(); err != nil {
9393
log.Fatal("Can't start php-fpm", zap.Error(err))

pkg/phpfpm/process.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,25 @@
11
package phpfpm
22

33
import (
4+
"errors"
45
"io"
56
"os"
67
"os/exec"
78
"syscall"
89
"time"
10+
11+
"go.uber.org/zap"
912
)
1013

1114
type Process struct {
15+
log *zap.Logger
16+
1217
cmd *exec.Cmd
1318
shutdownDelay time.Duration
1419
}
1520

1621
func NewProcess(
22+
log *zap.Logger,
1723
fpmPath string, fpmConfigPath string,
1824
stdout io.Writer, stderr io.Writer,
1925
shutdownDelay time.Duration,
@@ -29,7 +35,7 @@ func NewProcess(
2935
cmd.Args = append(cmd.Args, "--nodaemonize")
3036
cmd.Args = append(cmd.Args, "--fpm-config", fpmConfigPath)
3137

32-
return &Process{cmd: cmd, shutdownDelay: shutdownDelay}
38+
return &Process{log: log, cmd: cmd, shutdownDelay: shutdownDelay}
3339
}
3440

3541
func (p *Process) Start() error {
@@ -49,7 +55,9 @@ func (p *Process) HandleSignal(signalCh chan os.Signal) {
4955
sig = syscall.SIGQUIT
5056
}
5157

52-
p.cmd.Process.Signal(sig)
58+
if err := p.cmd.Process.Signal(sig); err != nil {
59+
p.log.Error("Failed to send signal to process", zap.Stringer("signal", sig), zap.Error(err))
60+
}
5361
}
5462
}
5563

@@ -59,7 +67,8 @@ func (p *Process) Wait(errCh chan<- error) int {
5967
return 0
6068
}
6169

62-
exitErr, ok := err.(*exec.ExitError)
70+
var exitErr *exec.ExitError
71+
ok := errors.As(err, &exitErr)
6372
if !ok {
6473
errCh <- err
6574
return -1

pkg/phpfpm/process_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,14 @@ import (
55
"testing"
66

77
"github.com/stretchr/testify/assert"
8+
"go.uber.org/zap"
89
)
910

1011
func TestNewProcess(t *testing.T) {
1112
stdout := bytes.NewBufferString("")
1213
stderr := bytes.NewBufferString("")
1314

14-
p := NewProcess("echo", "configpath", stdout, stderr, 0, []string{}, "-n")
15+
p := NewProcess(zap.NewNop(), "echo", "configpath", stdout, stderr, 0, []string{}, "-n")
1516
assert.NoError(t, p.Start())
1617

1718
errCh := make(chan error, 1)

0 commit comments

Comments
 (0)