commit
68d0369128
3
clair.go
3
clair.go
@ -20,6 +20,7 @@ import (
|
||||
"math/rand"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/coreos/clair/api"
|
||||
@ -62,7 +63,7 @@ func Boot(config *config.Config) {
|
||||
go updater.Run(config.Updater, db, st)
|
||||
|
||||
// Wait for interruption and shutdown gracefully.
|
||||
waitForSignals(os.Interrupt)
|
||||
waitForSignals(syscall.SIGINT, syscall.SIGTERM)
|
||||
log.Info("Received interruption, gracefully stopping ...")
|
||||
st.Stop()
|
||||
}
|
||||
|
@ -67,25 +67,30 @@ func main() {
|
||||
|
||||
// Enable CPU Profiling if specified
|
||||
if *flagCPUProfilePath != "" {
|
||||
startCPUProfiling(*flagCPUProfilePath)
|
||||
defer stopCPUProfiling()
|
||||
defer stopCPUProfiling(startCPUProfiling(*flagCPUProfilePath))
|
||||
}
|
||||
|
||||
clair.Boot(config)
|
||||
}
|
||||
|
||||
func startCPUProfiling(path string) {
|
||||
func startCPUProfiling(path string) *os.File {
|
||||
f, err := os.Create(path)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to create profile file: %s", err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
pprof.StartCPUProfile(f)
|
||||
err = pprof.StartCPUProfile(f)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to start CPU profiling: %s", err)
|
||||
}
|
||||
|
||||
log.Info("started CPU profiling")
|
||||
|
||||
return f
|
||||
}
|
||||
|
||||
func stopCPUProfiling() {
|
||||
func stopCPUProfiling(f *os.File) {
|
||||
pprof.StopCPUProfile()
|
||||
f.Close()
|
||||
log.Info("stopped CPU profiling")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user