Console Library 8.0.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
console::Process Class Reference

进程控制器,支持创建、等待、控制、信息查询。 More...

#include <process.h>

Public Member Functions

 Process ()
 默认构造函数,创建无效进程对象。
 ~Process ()=default
 析构函数。
 Process (const Process &)=delete
 拷贝构造函数(删除)。
Process & operator= (const Process &)=delete
 拷贝赋值运算符(删除)。
 Process (Process &&other) noexcept
 移动构造函数。
Process & operator= (Process &&other) noexcept
 移动赋值运算符。
pid_t pid () const
 获取进程 ID。
bool valid () const
 检查进程对象是否有效。
ExitStatus wait () const
 等待子进程退出(阻塞)。
bool poll (ExitStatus *status) const
 非阻塞查询子进程退出状态。
bool is_alive () const
 检查进程是否存活。
bool send_signal (Signal sig) const
 向进程发送信号。
bool terminate () const
 向进程发送 SIGTERM 信号请求终止。
bool kill () const
 向进程发送 SIGKILL 信号强制杀死。
bool stop () const
 向进程发送 SIGSTOP 信号暂停执行。
bool resume () const
 向进程发送 SIGCONT 信号恢复执行。
ProcessInfo get_info () const
 获取进程详细信息。
pid_t ppid () const
 获取进程的父进程 ID。

Static Public Member Functions

static Process invalid ()
 无效进程对象常量。
static Process fork ()
 经典 fork - 复制当前进程。
static Process spawn (int(*fn)(void *), void *arg)
 创建子进程执行指定函数。
static Process spawn_detach (int(*fn)(void *), void *arg)
 发射后不管模式创建子进程。
static Process self ()
 获取当前进程对象。
static Process parent ()
 获取父进程对象。
static Process wait_any (ExitStatus *status)
 等待任意子进程退出(阻塞)。
static bool daemonize ()
 将当前进程守护化为后台服务进程。

Private Member Functions

 Process (pid_t pid)
 私有构造函数,通过 pid 创建 Process 对象。

Static Private Member Functions

static int sys_kill (pid_t pid, int sig)
 向指定进程发送信号。

Private Attributes

pid_t pid_
 被管理的进程 ID

Detailed Description

进程控制器,支持创建、等待、控制、信息查询。

Constructor & Destructor Documentation

◆ Process() [1/4]

console::Process::Process ( pid_t pid)
inlineexplicitprivate

私有构造函数,通过 pid 创建 Process 对象。

Parameters
pid进程 ID。

◆ Process() [2/4]

console::Process::Process ( )
inline

默认构造函数,创建无效进程对象。

◆ ~Process()

console::Process::~Process ( )
default

析构函数。

◆ Process() [3/4]

console::Process::Process ( const Process & )
delete

拷贝构造函数(删除)。

◆ Process() [4/4]

console::Process::Process ( Process && other)
inlinenoexcept

移动构造函数。

Parameters
other要移动的 Process 对象。

Member Function Documentation

◆ daemonize()

bool console::Process::daemonize ( )
inlinestatic

将当前进程守护化为后台服务进程。

Returns
成功返回 true,失败返回 false。
Note
守护化后标准输入/输出/错误会重定向到 /dev/null。

◆ fork()

Process console::Process::fork ( )
inlinestatic

经典 fork - 复制当前进程。

Returns
父进程返回子进程对象,子进程返回空对象(pid=0)。

◆ get_info()

ProcessInfo console::Process::get_info ( ) const
inline

获取进程详细信息。

Returns
ProcessInfo 结构体包含 PID、PPID、内存、CPU 时间等。

◆ invalid()

Process console::Process::invalid ( )
inlinestatic

无效进程对象常量。

◆ is_alive()

bool console::Process::is_alive ( ) const
inline

检查进程是否存活。

Returns
true 存活,false 已退出或无效。

◆ kill()

bool console::Process::kill ( ) const
inline

向进程发送 SIGKILL 信号强制杀死。

Returns
成功返回 true,失败返回 false。

◆ operator=() [1/2]

Process & console::Process::operator= ( const Process & )
delete

拷贝赋值运算符(删除)。

◆ operator=() [2/2]

Process & console::Process::operator= ( Process && other)
inlinenoexcept

移动赋值运算符。

Parameters
other要移动的 Process 对象。
Returns
当前对象的引用。

◆ parent()

Process console::Process::parent ( )
inlinestatic

获取父进程对象。

Returns
父进程的 Process 对象。

◆ pid()

pid_t console::Process::pid ( ) const
inline

获取进程 ID。

Returns
进程 ID。

◆ poll()

bool console::Process::poll ( ExitStatus * status) const
inline

非阻塞查询子进程退出状态。

Parameters
status输出参数,存储退出状态信息。
Returns
如果进程已退出返回 true,否则返回 false。

◆ ppid()

pid_t console::Process::ppid ( ) const
inline

获取进程的父进程 ID。

Returns
父进程 ID,失败返回 -1。

◆ resume()

bool console::Process::resume ( ) const
inline

向进程发送 SIGCONT 信号恢复执行。

Returns
成功返回 true,失败返回 false。

◆ self()

Process console::Process::self ( )
inlinestatic

获取当前进程对象。

Returns
当前进程的 Process 对象。

◆ send_signal()

bool console::Process::send_signal ( Signal sig) const
inline

向进程发送信号。

Parameters
sig要发送的信号。
Returns
成功返回 true,失败返回 false。

◆ spawn()

Process console::Process::spawn ( int(* fn )(void *),
void * arg )
inlinestatic

创建子进程执行指定函数。

Parameters
fn子进程执行的函数指针。
arg传递给函数的参数。
Returns
父进程返回子进程对象,失败返回 invaild()。

◆ spawn_detach()

Process console::Process::spawn_detach ( int(* fn )(void *),
void * arg )
inlinestatic

发射后不管模式创建子进程。

Parameters
fn子进程执行的函数指针。
arg传递给函数的参数。
Returns
父进程返回子进程对象,失败返回 invaild()。
Note
与 spawn 功能相同,命名区分使用场景。

◆ stop()

bool console::Process::stop ( ) const
inline

向进程发送 SIGSTOP 信号暂停执行。

Returns
成功返回 true,失败返回 false。

◆ sys_kill()

int console::Process::sys_kill ( pid_t pid,
int sig )
inlinestaticprivate

向指定进程发送信号。

Parameters
pid目标进程 ID。
sig信号编号。
Returns
成功返回 0,失败返回 -1。

◆ terminate()

bool console::Process::terminate ( ) const
inline

向进程发送 SIGTERM 信号请求终止。

Returns
成功返回 true,失败返回 false。

◆ valid()

bool console::Process::valid ( ) const
inline

检查进程对象是否有效。

Returns
true 有效,false 无效。

◆ wait()

ExitStatus console::Process::wait ( ) const
inline

等待子进程退出(阻塞)。

Returns
子进程的 ExitStatus 状态信息。

◆ wait_any()

Process console::Process::wait_any ( ExitStatus * status)
inlinestatic

等待任意子进程退出(阻塞)。

Parameters
status输出参数,存储退出状态信息。
Returns
退出的子进程对象。

Member Data Documentation

◆ pid_

pid_t console::Process::pid_
private

被管理的进程 ID


The documentation for this class was generated from the following file: