daemon

package
v2.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2026 License: GPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SpawnDaemon

func SpawnDaemon(cfg *config.Instance) (cleanup func(), err error)

SpawnDaemon spawns a daemon subprocess for service isolation (e.g., TUI mode). It waits for the service API to become available and returns a cleanup function. The cleanup function sends SIGTERM and waits for graceful shutdown with timeout. Returns a no-op cleanup function if service was already running.

Types

type Service

type Service struct {
	// contains filtered or unexported fields
}

func NewService

func NewService(args ServiceArgs) (*Service, error)

func (*Service) Pid

func (s *Service) Pid() (int, error)

Pid returns the process ID of the current running service daemon.

func (*Service) Restart

func (s *Service) Restart() error

Restart is intentionally idempotent: if Running reports no live PID, Stop and waitForPIDExit are skipped and Start is called directly. When a PID is still active, Restart follows the full Stop -> waitForPIDExit -> Start sequence so pidRunning has confirmed the old process is gone before the replacement starts.

func (*Service) Running

func (s *Service) Running() (bool, error)

Running returns true if the service is running.

func (*Service) ServiceHandler

func (s *Service) ServiceHandler(cmd *string) error

func (*Service) Start

func (s *Service) Start() error

Start a new service daemon in the background.

func (*Service) Stop

func (s *Service) Stop() error

Stop the service daemon.

func (*Service) WaitForAPI

func (s *Service) WaitForAPI(cfg *config.Instance, maxWait, checkInterval time.Duration) error

WaitForAPI waits for the service API to become available with health monitoring. Returns nil if API became available, error if timeout or process crashed.

type ServiceArgs

type ServiceArgs struct {
	Platform platforms.Platform
	Config   *config.Instance
	Entry    ServiceEntry
	NoDaemon bool
}

type ServiceEntry

type ServiceEntry func() (*service.StartResult, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL