跟随退出的问题也找到了,我们发指令重启StarAgent的时候,本质上是执行 systemctl restart StarAgent,这个命令会导致StarAgent的子进程一起退出。 把StarAgent修改为循环运行,然后再重启,此时新进程会温柔地杀掉旧进程,并不会导致子进程跟随退出。
大石头 authored at 2024-05-19 00:36:20
1.09 KiB
Stardust
using System.Diagnostics;
using NewLife.Log;
using NewLife.Serialization;
using Stardust;
using Stardust.Models;
using Xunit;

namespace ClientTest;

public class AppInfoTests
{
    [Fact]
    public void Test()
    {
        foreach (var p in Process.GetProcesses())
        {
            //Console.WriteLine(p);
            var pi = new AppInfo(p);
            if (pi.ProcessorTime > 0) XTrace.WriteLine(pi.ToJson());
        }
    }

    [Fact]
    public void GetProcessName()
    {
        var p = Process.GetCurrentProcess();

        var name = StarHelper.GetProcessName(p);
        Assert.Equal("testhost", name);
    }

    //[Fact]
    //public void GetStarAgentName()
    //{
    //    var flag = false;
    //    foreach (var p in Process.GetProcesses())
    //    {
    //        if (p.ProcessName == "dotnet")
    //        {
    //            var name = AppInfo.GetProcessName(p);
    //            if (name == "StarAgent")
    //            {
    //                flag = true;
    //                break;
    //            }
    //        }
    //    }

    //    Assert.True(flag);
    //}
}