X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0eb72b526bf8bbb011551ecf019f604e17a534f1..dc021c3b57dcdebe464c148d55f9990a74e8246b:/services/crunchstat/crunchstat.go diff --git a/services/crunchstat/crunchstat.go b/services/crunchstat/crunchstat.go index 972b6a7180..6bf2e3399e 100644 --- a/services/crunchstat/crunchstat.go +++ b/services/crunchstat/crunchstat.go @@ -7,6 +7,7 @@ package main import ( "bufio" "flag" + "fmt" "io" "log" "os" @@ -15,7 +16,7 @@ import ( "syscall" "time" - "git.curoverse.com/arvados.git/lib/crunchstat" + "git.arvados.org/arvados.git/lib/crunchstat" ) const MaxLogLine = 1 << 14 // Child stderr lines >16KiB will be split @@ -23,6 +24,7 @@ const MaxLogLine = 1 << 14 // Child stderr lines >16KiB will be split var ( signalOnDeadPPID int = 15 ppidCheckInterval = time.Second + version = "dev" ) func main() { @@ -36,9 +38,18 @@ func main() { flag.IntVar(&signalOnDeadPPID, "signal-on-dead-ppid", signalOnDeadPPID, "Signal to send child if crunchstat's parent process disappears (0 to disable)") flag.DurationVar(&ppidCheckInterval, "ppid-check-interval", ppidCheckInterval, "Time between checks for parent process disappearance") pollMsec := flag.Int64("poll", 1000, "Reporting interval, in milliseconds") + getVersion := flag.Bool("version", false, "Print version information and exit.") flag.Parse() + // Print version information if requested + if *getVersion { + fmt.Printf("crunchstat %s\n", version) + return + } + + reporter.Logger.Printf("crunchstat %s started", version) + if reporter.CgroupRoot == "" { reporter.Logger.Fatal("error: must provide -cgroup-root") } else if signalOnDeadPPID < 0 { @@ -96,7 +107,7 @@ func runCommand(argv []string, logger *log.Logger) error { } // Funnel stderr through our channel - stderr_pipe, err := cmd.StderrPipe() + stderrPipe, err := cmd.StderrPipe() if err != nil { logger.Fatalln("error in StderrPipe:", err) } @@ -110,14 +121,14 @@ func runCommand(argv []string, logger *log.Logger) error { os.Stdin.Close() os.Stdout.Close() - copyPipeToChildLog(stderr_pipe, log.New(os.Stderr, "", 0)) + copyPipeToChildLog(stderrPipe, log.New(os.Stderr, "", 0)) return cmd.Wait() } func sendSignalOnDeadPPID(intvl time.Duration, signum, ppidOrig int, cmd *exec.Cmd, logger *log.Logger) { ticker := time.NewTicker(intvl) - for _ = range ticker.C { + for range ticker.C { ppid := os.Getppid() if ppid == ppidOrig { continue