简单进程监控
来源:互联网 发布:远程访问access数据库 编辑:程序博客网 时间:2024/06/06 23:50
以前做过ATM机项目,除了最基本的逻辑功能,比如取款,查询!转账等,虽然这些很重要,但是有更重要的一个事情,那就是监控,对ATM运行程序的监控,对于ATM状态的监控,
以及对于ATM硬件的监控。这些都是实时的,需要把这些信息发回给银行服务器系统,这样银行才好进行维护。银行服务器这段会根据状态把故障级别进行设置,例如错误就报红色,
警告就报黄色,正常就白色。那么银行服务器怎么收到这个状态的呢,外国银行有个ATM协议,用来规则包的数据字段的类型,用处,以及取值,每个ATM机器部件都有自己
的协议包规则,客户端只要获取到硬件的状态或者程序的运行状态,然后按照协议规定,把相应的值进行填充,发送给服务器端,服务器端就会去解析,然后进行报警预告。
现在就简单实现一下监控程序的运行状态,整个流程是这样的,获取程序的运行状态,例如程序是否异常停止。获取程序日志信息,然后把该信息写入数据库,然后与服务器交互的程序去解析日志,把相应的值发给另外一端的警告服务器,服务器收到后进行预警。
现在就简单实现获取要监控的所有程序的进程信息,看进程是否存在
int FindProStat(const char *szProPath)
{
FILE *pf =NULL;
char szProExe[50] = { 0 };
char szTmpProPath[BUF500] = { 0 };
char cmd[50]={0};
int ireturn = -1;
strcpy(cmd, "find /proc -maxdepth 3 -type l -name \"exe\" 2>/dev/null >proexe.txt");
if(system(cmd)<0)
{
return (-1);
}
if (NULL == (pf = fopen("proexe.txt", "r")))
{
return (-1);
}
while (NULL != fgets(szProExe, sizeof(szProExe) / sizeof(szProExe[0]), pf))
{
szProExe[strlen(szProExe)-1]=0;
memset(szTmpProPath,0,sizeof(szTmpProPath));
int rslt = readlink(szProExe, szTmpProPath, sizeof(szTmpProPath) - 1); //获取进程的路径
if (rslt < 0 || (rslt >= (sizeof(szProPath) - 1)))
{
continue;
}
ireturn = strcmp(szTmpProPath, szProPath);//与入参进行比较
if (0 == ireturn)
{
fclose(pf);
return 0;
}
}
fclose(pf);
return 1;
}
- 简单进程监控
- Linux 下简单监控进程
- 简单的进程监控脚本
- 内核模式简单实现进程监控
- python nagios简单监控进程数脚本
- 进程监控
- 进程监控
- 进程监控
- 进程监控
- linux 进程监控和自动重启的简单实现
- winxp下简单实现注册表修改、进程创建监控
- linux 进程监控和自动重启的简单实现
- 原来zabbix监控进程与端口是如此的简单!
- linux 进程监控和自动重启的简单实现 .
- linux 进程监控和自动重启的简单实现
- linux进程监控和简单的重启
- python实现linux下的简单进程监控
- 进程处理之进程监控
- 提取ipa里面的资源图片
- 迭代输出map
- ZOJ 1242
- hadoop shuffle机制中针对中间数据的排序过程详解(源代码级)
- 所有子集
- 简单进程监控
- httpModules与httpHandlers之httpHandlers
- C#获取当前程序运行路径的方法集合
- cocos2d-x游戏中加入sdk遇到的问题
- QTP破解步骤
- AS3中ByteArray类使用
- 集中化运维管理——Puppet管理之路
- 流程组人员的快速复制
- jackrabbit sample