`
jishublog
  • 浏览: 870758 次
文章分类
社区版块
存档分类
最新评论

简单进程监控

 
阅读更多

以前做过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;
}

分享到:
评论

相关推荐

    Ruby-BluepillRuby编写的简单进程监控工具

    Bluepill - Ruby编写的简单进程监控工具

    linux进程监控与自动重启的简单实现方法

    linux 下服务器程序会因为各种原因dump掉,就会影响用户使用,这里提供一个简单的进程监控和重启功能。 实现原理: 由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。 crontab...

    进程监控驱动,源码

    进程监控驱动,源码。简单的注册进程创建回调示例。

    ring0 rootkit驱动内核模式简单实现进程监控.zip

    ring0 rootkit驱动内核模式简单实现进程监控.zip

    libev 监控子进程

    本人经过查阅资料编写的一个简单进程监控demo,其中用到libev库中相关技术,测试时编译运行文件内的代码,他会打印子进程的ID,然后在控制台的kill命令杀死该进程id, 程序会检测到子进程已被杀死,并重新创建子进程。

    进程监控程序

    能适时监控进程并对进程进行重启,用的是dos命令,简单容易,不占用系统资源,可设定检查时间。

    监控进程启动退出

    通过PsSetCreateProcessNotifyRoutine实现的一个简单的监控进程启动退出的功能

    监控linux某进程内存的脚本

    很简单, 监控linux某进程内存的脚本

    Liunx 进程监控 shell

    比较简单的shell 用来检查某个进程是否在执行,如果没执行然后将它启动 这个shell 放在计划任务里面执行

    开发一个简易的任务监控程序 进程守卫

    开发一个简易的任务监控程序 进程守卫 参见博客 http://blog.csdn.net/lonelyrains/article/details/9243297

    Windows下设置守护进程JAR包挂掉自动重启,bat文件(已完美测试)

    它通过一个循环监控Java程序进程,如果检测到程序异常退出,会自动重启程序。同时具有可配置的重启次数和重启间隔时间。 这个小巧但实用的bat脚本实现了一个功能强大的守护进程机制,其可以广泛应用于各种Java程序的高...

    linux c 进程监管 模仿supervisor

    积分调少些,希望能方便大伙。 本案是模仿supervisor,使用注册监控程序,来实现管控。linux c 编写。 可用来不同进程的监管,接口简单方便使用。

    使用Python的Supervisor进行进程监控以及自动启动

    做服务器端开发的同学应该都对进程监控不会陌生,最近恰好要更换 uwsgi 为 gunicorn,而gunicorn又恰好有这么一章讲进程监控,所以多研究了下。 结合之前在腾讯工作的经验,也会讲讲腾讯的服务器监控是怎么做的。...

    python3实现windows下同名进程监控

    python3实现windows下同名进程监控,供大家参考,具体内容如下 公司老版的SVN服务器的svn服务经常意外关闭,需要写个简单的监控脚本监控一下; 首先多个SVN服务使用不同的端口,使用wmic命令查看所有SVN进程占用的...

    简单的内存读写监控软件。

    一个简单的内存读写监控软件,可以监控一个进程对其他进程的读写或者其他进程对该进程的读写,可以设置过滤规则。

    自制的简单进程清理器

    但过段时间却觉得此进程占系统资源,有了一键清理进程工具,你将不会因此而烦恼,只要你花几秒钟配置一下自己需要清理的进程然后打开程序即可一键将这些进程都清理掉,并会时时监控此进程是否再现.

    swift-ProcInfo是一个用于检索和监控macOS进程的开源库

    Proc Info是一个用于macOS的开源用户模式库。 它提供简单的界面来检索有关运行进程的详细信息,并允许用户异步监控进程创建和退出事件。

    Ruby进程监控器-Ruby开发

    God:过程管理的Ruby框架...使服务器进程和任务保持运行应该是部署过程中的简单部分。 God的目标是成为最简单,功能最强大的监视应用程序。 文档请参阅REPO_ROOT / doc中的内部仓库文档。 请参阅位于http:/的在线文档

    一个简单的注册表监控器

    一个简单的注册表监控器,可以用来查看进程运行时注册表的情况

Global site tag (gtag.js) - Google Analytics