Skip to content

wotsen/linux-systemcmd-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

linux-systemcmd-net-proxy

目录

[TOC]

目的

用于解决项目当中执行system()系统调用时会默认开启子进程,造成资源浪费,特别是大型项目中, 这里采用systemcmd代理服务器进程,专用于处理system调用,应用程序与代理服务器之间采用本地网络套接字通信.

原理

应用调用代理接口,代理接口内部进行与代理服务器之间的通信,将命令发送到服务器,服务器执行发送过来的命令,调用system() 进行执行,并且返回执行结果。

代理接口等待服务器返回执行结果,之后将执行结果返回给应用,这里只做简单返回:成功/失败.

注意:代理服务器一次只处理一条命令请求,不做并发支持.

使用

1. 编译

  • 正常编译安装

    make && make install
  • 带调试信息

    make DEBUG=true && make install
  • 指定安装路径

    make && make install MAKE_INSTALL_PREFIX=.
  • 编译测试,在编译安装后执行以下:

    make cli_test

    启动服务器./systemcmd_proxyd 启动客户端./cli_test ls执行ls命令.

2. 集成

  • 安装后的代理服务器程序systemcmd_proxyd在指定路径下的bin目录.

  • libsystemcmd_proxy_cli.a在指定路径lib目录.

  • 头文件systemcmd_proxy_interface.h在指定路径include目录.

使用时添加头文件和库.

3. 接口

namespace wotsen
{

/**
 * @brief 系统命令代理
 *
 * @param cmd 命令字符串
 * @return true 成功
 * @return false 失败
 */
bool systemcmd_proxy(const char *cmd);

/**
 * @brief Get the systemcmd proxy version object
 *
 * @return const char*
 */
const char *get_systemcmd_proxy_version(void);

} // namespace wotsen

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published