Skip to content

一个go语言库, 用于处理进程相关的操作,如 : fork, 响应kill, 保持进程唯一

Notifications You must be signed in to change notification settings

zh-five/xprocess

Repository files navigation

一个进程处理相关的go语言库

这个是另一个库的升级版 xdaemon

功能速览

支持 linux 和 Windows, 已测试 Ubuntu22.04, windows10

  1. fork 功能: 把go的cli程序自身, 按原样参数另起一个进程
    • xprocess.Fork(): 抛弃子进程所有输出(stdout, stderr)
    • xprocess.Fork2Log():子进程所有输出写入到指定日志文件
    • xprocess.Fork2Std():子进程所有输出输出到父进程输出
    • xprocess.AlwaysFork2Log(): 子进程所有输出写入到指定日志文件, 子进程若退出了总是再启动一个
    • xprocess.AlwaysFork2Std():子进程所有输出输出到父进程输出, 子进程若退出了总是再启动一个
    • xprocess.AlwaysFork():子进程所有输出输出到父进程输出, 子进程若退出了总是再启动一个
    • 支持无限级 fork, 也就是子进程还可以 fork 子进程
    • 支持灵活自定义, 可组合以上功能以及其它
    • Windows下子进程自动隐藏命令行窗口
    • 子进程可脱离父进程运行, 不受父进程退出的影响
  2. 信号监听: 封装标准库 signal 方便使用
  3. 进程唯一性检查和处理
    • xprocess.UniqueCheckAndKillOld(flag string, onKill func()) : 检查进程唯一性,若不唯一则让旧进程退出(软kill)
    • xprocess.UniqueCheck(flag string) bool : 检查进程是否唯一, 可用于新进程退出

快速使用

About

一个go语言库, 用于处理进程相关的操作,如 : fork, 响应kill, 保持进程唯一

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages