-
Linux下的服务程序开发库kylin-2.0-fc9-i686.tar.gz下载
资源介绍
#include "stdio.h"
#include "KYLin.h"
// 启动
static int DoStart(const TKYStringList& AParams, bool AIsSvc)
{
// 显示
if (!AIsSvc)
printf("..... OnStart(IsSvc: false) is running.\n");
// ??? ... ...
return 0;
}
// 停止
static void DoStop(bool AIsSvc)
{
// 显示
if (!AIsSvc)
printf("..... OnStop(IsSvc: false) is running.\n");
// ??? ... ...
}
// 控制台方式下执行
static void DoExecute(const TKYStringList& AParams, TKYSvcApp* ASvcApp)
{
// 显示
printf("..... OnExecute is running.\n");
// 等待结束
printf("press [Ctrl+C] stop application.\n");
while (!ASvcApp->Terminated())
ASvcApp->Notify()->Wait();
}
// 用户自定义开关
static int DoUser(long ASwitch, int argc, char* argv[])
{
printf("switch(%d) <%s> is run.\n", ASwitch, argv[1]);
return 0;
}
// 主函数
int main(int argc, char* argv[])
{
// 初始化
TKYSvcApp objApp("TestSvc", "Service demo", "Test TKYSvcApp demo");
// 设置启动/停止的回调函数
objApp.OnStart = DoStart;
objApp.OnStop = DoStop;
// 自定义应用控制时的回调函数
/*
objApp.OnExecute = DoExecute;
objApp.OnUser = DoUser;
//*/
// 设置对象属性
/*
objApp.SetRunLevel(235); // 服务运行级别 [1, 2, 3, 4, 5]
objApp.SetStartNo(20); // 服务启动序号
objApp.SetStopNo(80); // 服务停止序号
objApp.SetIsAuto(false); // 手动启动
//*/
// 自定义参数开关(注: 默认参数开关可以通过 /? 显示)
/*
objApp.ClearSwitchs();
objApp.AddSwitch(TKYSvcApp::asHelp, "/?", "显示帮助信息"); // 更改默认的提示信息
objApp.AddSwitch(TKYSvcApp::asHelp, "-help");
objApp.AddSwitch(TKYSvcApp::asConsole, "-console", "控制台方式运行");// 更改默认的提示信息
objApp.AddSwitch(TKYSvcApp::asService, "-service", "服务方式运行"); // 更改默认的提示信息
objApp.AddSwitch(TKYSvcApp::asInstall, "-install");
objApp.AddSwitch(TKYSvcApp::asUninstall, "-remove");
objApp.AddSwitch(TKYSvcApp::asStart, "-start");
objApp.AddSwitch(TKYSvcApp::asStop, "-stop");
objApp.AddSwitch(15, "-u1", "my switch 1");
objApp.AddSwitch(18, "-u2", "my switch 2");
objApp.AddSwitch(20, "-u3");
//*/
// 运行
return objApp.Run(argc, argv);
}
- 上一篇: libexif-master.tar.gz
- 下一篇: 基于TCP/IP的远程调用接口RC_3.0