2023-01-27 21:37:20 +00:00
|
|
|
// Copyright (c) Tailscale Inc & AUTHORS
|
|
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
2020-09-11 15:09:51 +00:00
|
|
|
|
|
|
|
// Package pidowner handles lookups from process ID to its owning user.
|
|
|
|
package pidowner
|
|
|
|
|
|
|
|
import (
|
|
|
|
"errors"
|
|
|
|
"runtime"
|
|
|
|
)
|
|
|
|
|
|
|
|
var ErrNotImplemented = errors.New("not implemented for GOOS=" + runtime.GOOS)
|
|
|
|
|
|
|
|
var ErrProcessNotFound = errors.New("process not found")
|
|
|
|
|
|
|
|
// OwnerOfPID returns the user ID that owns the given process ID.
|
|
|
|
//
|
|
|
|
// The returned user ID is suitable to passing to os/user.LookupId.
|
|
|
|
//
|
|
|
|
// The returned error will be ErrNotImplemented for operating systems where
|
|
|
|
// this isn't supported.
|
|
|
|
func OwnerOfPID(pid int) (userID string, err error) {
|
|
|
|
return ownerOfPID(pid)
|
|
|
|
}
|