gocmdDaemon

package module
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2025 License: MIT Imports: 6 Imported by: 0

README

gocmdDaemon

这是一个基于 Unix Socket 的守护进程,提供命令注册和执行的功能。

安装

go get github.com/kingecg/gocmdDaemon

使用示例

package main

import (
	"github.com/kingecg/gocmdDaemon"
)

func main() {
	// 创建守护进程实例
	daemon := &gocmdDaemon.CmdDaemon{
		SocketPath: "/tmp/my.sock",
	}

	// 注册命令处理程序
	daemon.RegisterCmd("test", &MyCmdHandler{})

	// 启动守护进程
	daemon.Listen()
}

// MyCmdHandler 实现 CmdHandler 接口
type MyCmdHandler struct{}

func (h *MyCmdHandler) Handle(conn *gocmdDaemon.CmdConn, req *gocmdDaemon.CmdRequest) error {
	return conn.End("Command executed successfully")
}

func (h *MyCmdHandler) Description() string {
	return "A test command handler"
}

func (h *MyCmdHandler) Usage() string {
	return "usage: test"
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Read

func Read[T any](conn net.Conn) (*T, error)

Read 从网络连接读取JSON数据并反序列化为指定类型 参数:

conn: 网络连接对象

返回:

*T: 反序列化后的值指针
error: 读取或反序列化过程中发生的错误(如果有)

func Write

func Write[T any](conn net.Conn, v T) error

Write 将给定的值序列化为JSON并写入网络连接 参数:

conn: 网络连接对象
v: 要写入的值

返回:

error: 写入过程中发生的错误(如果有)

Types

type CmdConn

type CmdConn struct {
	net.Conn
	Id string
}

func (*CmdConn) End

func (c *CmdConn) End(d string) error

func (*CmdConn) Write

func (c *CmdConn) Write(d string) error

func (*CmdConn) WriteError

func (c *CmdConn) WriteError(err error, isContinue bool) error

type CmdDaemon

type CmdDaemon struct {
	Name       string // app cli command name
	SocketPath string // unix socket path
	// contains filtered or unexported fields
}

func (*CmdDaemon) Listen

func (c *CmdDaemon) Listen() error

Listen 启动守护进程并监听Unix socket上的连接 参数:

c: CmdDaemon 实例指针

返回:

error: 监听过程中发生的错误(如果有)

func (*CmdDaemon) RegisterCmd

func (c *CmdDaemon) RegisterCmd(cmd string, handler CmdHandler)

func (*CmdDaemon) Run

func (c *CmdDaemon) Run() error

Run 执行客户端命令并通过Unix socket与守护进程通信 参数:

c: CmdDaemon 实例指针

返回:

error: 执行过程中发生的错误(如果有)

func (*CmdDaemon) Usage

func (c *CmdDaemon) Usage() string

Usage 生成命令使用说明 参数:

c: CmdDaemon 实例指针

返回:

string: 命令使用说明字符串

type CmdHandler

type CmdHandler interface {
	Handle(conn *CmdConn, req *CmdRequest) error
	Description() string
	Usage() string
}

type CmdRequest

type CmdRequest struct {
	Id      string `json:"id"`
	Cmd     string `json:"cmd"`
	Args    string `json:"args"`
	IsDebug bool   `json:"debug"`
}

type CmdResponse

type CmdResponse struct {
	Id       string `json:"id"`
	Data     string `json:"data"`
	Error    string `json:"error"`
	Continue bool   `json:"continue"`
}

Jump to

Keyboard shortcuts

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