dnscryptProxy服务健康检查
This commit is contained in:
parent
072c239c66
commit
e6808ed9ed
@ -10,7 +10,7 @@ namespace FastGithub.Dns.DnscryptProxy
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// DnscryptProxy后台服务
|
/// DnscryptProxy后台服务
|
||||||
/// </summary>
|
/// </summary>
|
||||||
sealed class DnscryptProxyHostedService : IHostedService
|
sealed class DnscryptProxyHostedService : BackgroundService
|
||||||
{
|
{
|
||||||
private const string dnscryptProxyFile = "dnscrypt-proxy";
|
private const string dnscryptProxyFile = "dnscrypt-proxy";
|
||||||
private readonly ILogger<DnscryptProxyHostedService> logger;
|
private readonly ILogger<DnscryptProxyHostedService> logger;
|
||||||
@ -29,7 +29,7 @@ namespace FastGithub.Dns.DnscryptProxy
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="cancellationToken"></param>
|
/// <param name="cancellationToken"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task StartAsync(CancellationToken cancellationToken)
|
public override Task StartAsync(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -48,7 +48,8 @@ namespace FastGithub.Dns.DnscryptProxy
|
|||||||
{
|
{
|
||||||
this.logger.LogWarning($"{dnscryptProxyFile}启动失败:{ex.Message}");
|
this.logger.LogWarning($"{dnscryptProxyFile}启动失败:{ex.Message}");
|
||||||
}
|
}
|
||||||
return Task.CompletedTask;
|
|
||||||
|
return base.StartAsync(cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -56,7 +57,7 @@ namespace FastGithub.Dns.DnscryptProxy
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="cancellationToken"></param>
|
/// <param name="cancellationToken"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Task StopAsync(CancellationToken cancellationToken)
|
public override Task StopAsync(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -76,9 +77,26 @@ namespace FastGithub.Dns.DnscryptProxy
|
|||||||
{
|
{
|
||||||
this.logger.LogWarning($"{dnscryptProxyFile}停止失败:{ex.Message}");
|
this.logger.LogWarning($"{dnscryptProxyFile}停止失败:{ex.Message}");
|
||||||
}
|
}
|
||||||
return Task.CompletedTask;
|
return base.StopAsync(cancellationToken);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 后台任务
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="stoppingToken"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
||||||
|
{
|
||||||
|
while (stoppingToken.IsCancellationRequested == false)
|
||||||
|
{
|
||||||
|
await Task.Delay(TimeSpan.FromSeconds(10d), stoppingToken);
|
||||||
|
var processes = Process.GetProcessesByName(dnscryptProxyFile);
|
||||||
|
if (processes.Length == 0)
|
||||||
|
{
|
||||||
|
this.logger.LogError($"检测到{dnscryptProxyFile}已停止运行,{nameof(FastGithub)}将无法使用。你可以把配置文件的PureDns修改为其它可用的DNS以临时使用。");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 启动DnscryptProxy进程
|
/// 启动DnscryptProxy进程
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user