statusz: fix executable sha256
diff --git a/go/statusz/statusz.go b/go/statusz/statusz.go
index 606d244..6c0fe17 100644
--- a/go/statusz/statusz.go
+++ b/go/statusz/statusz.go
@@ -178,15 +178,23 @@
 	}
 	username = fmt.Sprintf("%s (%s)", user.Username, user.Uid)
 
-	f, err := os.Open(os.Args[0])
-	if err != nil {
-		glog.Fatalf("os.Open(%q): %v", os.Args[0], err)
+	exec, err := os.Executable()
+	if err == nil {
+		f, err := os.Open(exec)
+		if err == nil {
+			h := sha256.New()
+			if _, err := io.Copy(h, f); err != nil {
+				glog.Fatalf("io.Copy: %v", err)
+			}
+			binaryHash = fmt.Sprintf("%x", h.Sum(nil))
+		} else {
+			glog.Errorf("Could not get SHA256 of binary: os.Open(%q): %v", exec, err)
+			binaryHash = "could not read executable"
+		}
+	} else {
+		glog.Errorf("Could not get SHA256 of binary: os.Executable(): %v", err)
+		binaryHash = "could not get executable"
 	}
-	h := sha256.New()
-	if _, err := io.Copy(h, f); err != nil {
-		glog.Fatalf("io.Copy: %v", err)
-	}
-	binaryHash = fmt.Sprintf("%x", h.Sum(nil))
 
 	if DefaultMux {
 		http.HandleFunc("/debug/status", StatusHandler)