Add TestZombies and improve exec output handling

This commit is contained in:
Arthur Barr
2017-11-29 15:50:10 +00:00
parent 5b0259ec6e
commit a80b839c14
4 changed files with 70 additions and 7 deletions

View File

@@ -19,6 +19,7 @@ package main
import (
"errors"
"fmt"
"io/ioutil"
"log"
"os"
@@ -30,6 +31,20 @@ import (
"github.com/ibm-messaging/mq-container/internal/name"
)
var debug = false
func logDebug(msg string) {
if debug {
log.Printf("DEBUG: %v", msg)
}
}
func logDebugf(format string, args ...interface{}) {
if debug {
log.Printf("DEBUG: %v", fmt.Sprintf(format, args...))
}
}
// createDirStructure creates the default MQ directory structure under /var/mqm
func createDirStructure() error {
out, _, err := command.Run("/opt/mqm/bin/crtmqdir", "-f", "-s")
@@ -127,6 +142,10 @@ func stopQueueManager(name string) error {
}
func doMain() error {
debugEnv, ok := os.LookupEnv("DEBUG")
if ok && (debugEnv == "true" || debugEnv == "1") {
debug = true
}
accepted, err := checkLicense()
if err != nil {
return err

View File

@@ -50,11 +50,13 @@ func signalHandler(qmgr string) chan int {
// End the goroutine
return
case <-reapSignals:
logDebug("Received SIGCHLD signal")
reapZombies()
case job := <-control:
switch {
case job == startReaping:
// Add SIGCHLD to the list of signals we're listening to
logDebug("Listening for SIGCHLD signals")
signal.Notify(reapSignals, syscall.SIGCHLD)
case job == reapNow:
reapZombies()
@@ -75,5 +77,6 @@ func reapZombies() {
if pid == 0 || err == unix.ECHILD {
return
}
logDebugf("Reaped PID %v", pid)
}
}