package psnotify

import "github.com/cloudfoundry/gosigar/psnotify"

Go interface to the Linux netlink process connector. See Documentation/connector/connector.txt in the linux kernel source tree.

Index

Constants

const (

	// Flags (from <linux/cn_proc.h>)
	PROC_EVENT_FORK = 0x00000001 // fork() events
	PROC_EVENT_EXEC = 0x00000002 // exec() events
	PROC_EVENT_EXIT = 0x80000000 // exit() events

	// Watch for all process events
	PROC_EVENT_ALL = PROC_EVENT_FORK | PROC_EVENT_EXEC | PROC_EVENT_EXIT
)

Types

type ProcEventExec

type ProcEventExec struct {
	Pid int // Pid of the process that called exec()
}

type ProcEventExit

type ProcEventExit struct {
	Pid int // Pid of the process that called exit()
}

type ProcEventFork

type ProcEventFork struct {
	ParentPid int // Pid of the process that called fork()
	ChildPid  int // Child process pid created by fork()
}

type Watcher

type Watcher struct {
	Error chan error          // Errors are sent on this channel
	Fork  chan *ProcEventFork // Fork events are sent on this channel
	Exec  chan *ProcEventExec // Exec events are sent on this channel
	Exit  chan *ProcEventExit // Exit events are sent on this channel
	// contains filtered or unexported fields
}

func NewWatcher

func NewWatcher() (*Watcher, error)

Initialize event listener and channels

func (*Watcher) Close

func (w *Watcher) Close() error

Closes the OS specific event listener, removes all watches and closes all event channels.

func (*Watcher) RemoveWatch

func (w *Watcher) RemoveWatch(pid int) error

Remove pid from the watched process set.

func (*Watcher) Watch

func (w *Watcher) Watch(pid int, flags uint32) error

Add pid to the watched process set. The flags param is a bitmask of process events to capture, must be one or more of: PROC_EVENT_FORK, PROC_EVENT_EXEC, PROC_EVENT_EXIT

Source Files

psnotify.go psnotify_linux.go

Version
v1.3.92 (latest)
Published
May 7, 2025
Platform
linux/amd64
Imports
7 packages
Last checked
4 hours ago

Tools for package owners.