随笔 - 36  文章 - 0  评论 - 62  阅读 - 97218 

进程守护工具

1.写在前面

经常写一些服务程序,有时要监测服务程序的运行状态,所以就做了一个进程守护工具。

2.分析

通过Process.GetProcessesByName(ProcessName),获得指定进程列表。

用Process.MainModule.FileName来判断程序是否运行。

3.程序实现

下面将贴出实现该程序的主要代码。

复制代码
        /// <summary>
        /// 判断进程是否正在运行,可通过程序全路径
        /// </summary>
        /// <param name="ProcessName">进程名称</param>
        /// <param name="FileName">进程全路径</param>
        public static bool GetProcess(string ProcessName, string FileName = null)
        {
            Process[] ps = Process.GetProcessesByName(ProcessName);
            foreach (Process p in ps)
            {
                if (string.IsNullOrEmpty(FileName))//无值
                {
                    return true;
                }
                else//指定
                {
                    if (string.Equals(p.MainModule.FileName, FileName, StringComparison.CurrentCultureIgnoreCase))
                    {
                        return true;
                    }
                }
            }
            return false;
        }

        /// <summary>
        /// 启动程序
        /// </summary>
        /// <param name="FileName">程序路径</param>
        public static bool RestartProcess(string FileName)
        {
            try
            {
                Process.Start(FileName);
                return true;
            }
            catch (Exception ex)
            {
                Log4Net.LogInfo(string.Format("启动程序异常:{0}", ex.Message));
                return false;
            }
        }
View Code
复制代码

4.程序界面

5.功能

1、设置程序监测列表。
2、支持同一个程序不同运行路径的监测。
3、界面日志和文件日志。

下载地址:https://pan.baidu.com/s/1y1ApRjcLoDdKssXsVOQfCQ 提取码:gder 

posted on   小熊吉米  阅读(1736)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示