VC做一个监控进程,该进程需要定时获取被监控的进程的状态,如果被监控的进程关闭了,就重新启动之

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC做一个监控进程,该进程需要定时获取被监控的进程的状态,如果被监控的进程关闭了,就重新启动之相关的知识,希望对你有一定的参考价值。

可以手动输入进程的名字,然后添加需要监控的进程,一旦添加的进程关闭了,能自动启动它。
目前可以把所有进程枚举出来,就是不知道怎么添加,求指导,谢谢

你能枚举出来,肯定能得到进程名称或进程pid吧?

原型:
int WINAPI icePub_getProcessPathByName(char *strProcessName,char *strPath)
输入:strProcessName 进程名
输出:strPath 进程带路径文件名

原型:
int WINAPI icePub_getProcessPathByPid(int pid,char *strPath)
输入:pid 进程PID
输出:strPath 进程带路径文件名

这两个函数能得到进程的带路径的文件名,你
icePub_open(strPath);
即可

原型:
int WINAPI icePub_open(char *strPath)
输入:strPath 待打开(运行)文件名或链接或文件夹
输出:

下边参考资料里有文档下载

参考资料:http://zhidao.baidu.com/question/278084529.html

参考技术A 没分怎会有人上钩

crond守护进程实现定时监控某进程占有内存的大小

1)添加计划任务

crontab -e会使用某个编辑器打开某个文件,然后在内输入需要执行的计划任务,保存后在/var/spool/cron/crontabs/下会出现以用户名命名的文件

2)计划任务如何添加

该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。
    每个域之间使用空格或者制表符分隔。格式如下: 
  minute hour day-of-month month-of-year day-of-week commands 

  除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字,"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

几个例子: 
每天早上6点 
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

每两个小时 
0 */2 * * * echo "Have a break now." >> /tmp/test.txt  

晚上11点到早上8点之间每两个小时和早上八点 
0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 
0 11 4 * 1-3 command line

1月1日早上4点 
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号 HOME=/ 

每小时执行/etc/cron.hourly内的脚本
01 * * * * root run-parts /etc/cron.hourly
每天执行/etc/cron.daily内的脚本
02 4 * * * root run-parts /etc/cron.daily 

每星期执行/etc/cron.weekly内的脚本
22 4 * * 0 root run-parts /etc/cron.weekly 

每月去执行/etc/cron.monthly内的脚本 
42 4 1 * * root run-parts /etc/cron.monthly 

注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。

3)问题:在嵌入式开发中,发现嵌入式Linux系统内输入crontab -e发生报错

crontab: chdir(/var/spool/cron/crontabs): No such file or directory

解决方法:

mkdir -p /var/spool/cron/crontabs

由于/var文件夹是内核的虚拟文件夹,重启后改动全部消失,那么可以通过自启动脚本实现

 

mkdir -p /var/spool/cron/crontabs
cp /root/root /var/spool/cron/crontabs

chmod 777 /var/spool/cron/crontabs/root
crond

 

 其中由于是在登录前执行,所以不能使用‘~’

4)查看进程占用内存

crond进程定时启动某个脚本实现,脚本如下

PID=`ps |grep XXX|sed -n 1p|awk \'{print $1}\'`
free >> $FILE
cat /proc/$PID/status |grep VmSize >> $FILE

 

可以根据自己的内核打印情况自行修改

 

 所有参考的文章以及网址

crontab相关:

linux下添加定时任务

嵌入式Linux下使用BusyBox的crond服务的方法

使用busybox的crond服务

Linux crontab定时任务配置方法(详解)

查看进程相关

http://bbs.csdn.net/topics/360001628(二楼最有用)

Linux下查看某一个程序运行所占用的内存

精确度量Linux下进程占用多少内存的方法

 

以上是关于VC做一个监控进程,该进程需要定时获取被监控的进程的状态,如果被监控的进程关闭了,就重新启动之的主要内容,如果未能解决你的问题,请参考以下文章

Linux下创建定时任务监控zookeeper进程,异常时自动启动

Linux下创建定时任务监控kafka进程,异常时自动启动

查看 Linux 文件占用进程写数据?

Linux下同进程多进程号实时监控

php实现常驻进程 多进程监控

Zabbix 如何获取并监控 Linux 系统的进程名