最近、サーバー exe の単純な自動再起動のアイデアがありました。
基本的にそれがすることはすべてです
WerFault
runningという名前のプロセスがあるかどうかを確認します- 存在する場合は、サーバーがクラッシュしたことを意味するため、サーバーと
WerFault
- その後、サーバーを再度開きます。
- 2 番目に確認することは、
wServer
が実行されているかどうか、そうでない場合は起動することです。
これはすべて、10 秒の遅延を伴うタイマー内です。
しかし、これを行うためのはるかに効率的な方法があると確信しています。私は独学で C# を学びました (本を 1 冊も読んだことがありません。私が知っているのは、自己学習 + Google を通じて習得したものだけです)。
また、サーバーを 24 時間年中無休で稼働させたい理由は、vps で実行されるためです。
注: これは Windows フォーム アプリケーションです。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Diagnostics;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
Process[] prs = Process.GetProcesses();
foreach (Process pr in prs)
{
if (pr.ProcessName == "WerFault")
{
pr.Kill();
if (pr.ProcessName == "wServer")
{
pr.Kill();
Process.Start(@"C:\Users\Arturs\Dropbox\ROTMGServer-master\bin\Debug\wServer\wServer.exe");
}
return;
}
}
if (pr.ProcessName == "wServer")
{
return;
}
Process.Start(@"C:\Users\Arturs\Dropbox\ROTMGServer-master\bin\Debug\wServer\wServer.exe");
return;
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
private void timer2_Tick(object sender, EventArgs e)
{
}
}
}
}