完整的命令行程序

简介: 完整的命令行程序

提示

官方使用的是 C++ 来编写的,但是本人目前 C 还没有掌握, C++ 先放一放。

首先,一个完整的命令行程序应该包含哪些功能?


  1. 命令行参数解析
  2. 配置文件解析
  3. 打印帮助信息和版本信息
  4. 信号处理
  5. 日志、pid文件
  6. 如果是服务端长时间运行后台程序,还需要看门狗(崩溃自动重启)


下载文件:hmain_test.cpp

hmain_test 提供了打印帮助信息、打印版本信息、测试配置文件、后台运行、创建pid文件、查看进程状态、开始|停止|重启进程、 master-workers 多进程模式、崩溃自动重启等功能。


流程图如下:

提示

master-workers 进程模式是受 nginx 启发, master看门狗进程,负责 worker 的崩溃重启,也可以通过 masterworker 发送信号,如 hmain_test -s reload 重新加载配置文件。单独 kill 掉某个 worker 进程,是会被 master 重新 fork 出来的,需要通过 sudo killall hmain_test 杀死所有进程或者 hmain_test -s stop 发送停止信号。

目录
相关文章
|
JavaScript Python 内存技术
分享63个广告代码JS特效,总有一款适合您
分享63个广告代码JS特效,总有一款适合您
359 2
|
数据可视化 测试技术 持续交付
自动化测试神器:Python之Pytest库入门使用
自动化测试神器:Python之Pytest库入门使用
454 4
|
编解码 Shell 文件存储
Rockchip saveBaseParameter程序来设置显示器参数
Rockchip saveBaseParameter程序来设置显示器参数
814 50
|
监控
计算机网络的拓扑结构
计算机网络的拓扑结构。
627 0
|
机器学习/深度学习 存储 安全
数据库模型:层次模型、网状模型、关系模型
数据库模型:层次模型、网状模型、关系模型
|
监控 网络协议 前端开发
排查502问题,一般人我我不告诉这么排!
排查502问题,一般人我我不告诉这么排!
393 1
|
机器学习/深度学习 自然语言处理 对象存储
[wordpiece]论文分析:Google’s Neural Machine Translation System
[wordpiece]论文分析:Google’s Neural Machine Translation System
210 1
|
数据采集 数据可视化 数据建模
数据模型依赖图的作用是什么?
数据模型依赖图的作用是什么?
240 2
一文讲明 网络调试助手的基本使用 NetAssist
文章介绍了网络调试助手NetAssist的基本使用方法,包括创建客户端和服务端,模拟网络连接和数据发送,并通过Java代码示例展示了客户端与服务端之间的通信过程。
一文讲明 网络调试助手的基本使用 NetAssist