Files
Matt Heon d9c388e2fe Change to using gopsutil for cross-OS process ops
Instead of trying to write out own code to do basic process
operations (e.g. checking if a PID is still running in a multi-OS
friendly manner), use shirou/gopsutil, a multi-platform library
that should abstract all the complexity away. Unlike our previous
approach on Windows, this one should actually work.

Signed-off-by: Matt Heon <mheon@redhat.com>
2023-10-31 10:14:06 -04:00

36 lines
575 B
Go

// +build aix
package perfstat
/*
#include "c_helpers.h"
*/
import "C"
import (
"fmt"
"time"
)
func timeSince(ts uint64) uint64 {
return uint64(time.Now().Unix()) - ts
}
// BootTime() returns the time of the last boot in UNIX seconds
func BootTime() (uint64, error) {
sec := C.boottime()
if sec == -1 {
return 0, fmt.Errorf("Can't determine boot time")
}
return uint64(sec), nil
}
// UptimeSeconds() calculates uptime in seconds
func UptimeSeconds() (uint64, error) {
boot, err := BootTime()
if err != nil {
return 0, err
}
return timeSince(boot), nil
}