.NET CORE 获取LINUX硬件CPU使用率等状态信息

cat /proc/stat

vmstat,top,ps aux

三个命令都可以查看CPU内存或者进程等情况

然后看下面的代码

 

 

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace myApp
{
    class Program
    {
        static void Main(string[] args)
        {
        Process[] p = Process.GetProcesses();//获取进程信息
            Int64 totalMem = 0;
            string info = "";
            foreach (Process pr in p)
            {
                totalMem += pr.WorkingSet64 / 1024;
                info += pr.ProcessName + "内存:-----------" + (pr.WorkingSet64 / 1024).ToString() + "KB\r\n";//得到进程内存
            }
            Console.WriteLine(info);
            Console.WriteLine("总内存totalmem:" + totalMem/1024+"M");
            Console.WriteLine("判断是否为Windows Linux OSX");
            Console.WriteLine($"Linux:{RuntimeInformation.IsOSPlatform(OSPlatform.Linux)}");
            Console.WriteLine($"OSX:{RuntimeInformation.IsOSPlatform(OSPlatform.OSX)}");
            Console.WriteLine($"Windows:{RuntimeInformation.IsOSPlatform(OSPlatform.Windows)}");
            Console.WriteLine($"系统架构:{RuntimeInformation.OSArchitecture}");
            Console.WriteLine($"系统名称:{RuntimeInformation.OSDescription}");
            Console.WriteLine($"进程架构:{RuntimeInformation.ProcessArchitecture}");
            Console.WriteLine($"是否64位操作系统:{Environment.Is64BitOperatingSystem}");
            Console.WriteLine("CPU CORE:"+Environment.ProcessorCount);
            Console.WriteLine("HostName:" + Environment.MachineName);
            Console.WriteLine("Version:" + Environment.OSVersion);

            Console.WriteLine("内存相关的:" + Environment.WorkingSet);
            string[] LogicalDrives = Environment.GetLogicalDrives();
            for (int i = 0; i < LogicalDrives.Length; i++)
            {
                Console.WriteLine("驱动:" + LogicalDrives[i]);
            }
           // Console.ReadLine();
          
            //创建一个ProcessStartInfo对象 使用系统shell 指定命令和参数 设置标准输出
            var psi = new ProcessStartInfo("top", " -b -n 1") { RedirectStandardOutput = true };
            //启动
            var proc = Process.Start(psi);
            
         //   psi = new ProcessStartInfo("", "1") { RedirectStandardOutput = true };
            //启动
           // proc = Process.Start(psi);

            if (proc == null)
            {
                Console.WriteLine("Can not exec.");
            }
            else
            {
                Console.WriteLine("-------------Start read standard output-------cagy-------");
                //开始读取
                using (var sr = proc.StandardOutput)
                {
                    while (!sr.EndOfStream)
                    {
                        Console.WriteLine(sr.ReadLine());
                    }

                    if (!proc.HasExited)
                    {
                        proc.Kill();
                    }
                }
                Console.WriteLine("---------------Read end-----------cagy-------");
                Console.WriteLine($"Total execute time :{(proc.ExitTime - proc.StartTime).TotalMilliseconds} ms");
                Console.WriteLine($"Exited Code : {proc.ExitCode}");
            }

        }
    }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xcagy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值