跟随退出的问题也找到了,我们发指令重启StarAgent的时候,本质上是执行 systemctl restart StarAgent,这个命令会导致StarAgent的子进程一起退出。 把StarAgent修改为循环运行,然后再重启,此时新进程会温柔地杀掉旧进程,并不会导致子进程跟随退出。
大石头
authored at
2024-05-19 00:36:20
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);
//}
}
|