원격 서버에서 실행중인 C#으로 개발된 Process 상태 관리 방법에 대한 문의입니다.

안녕하세요.
C# 으로 개발을 시작한 지 2년 정도 되어가는 beginner 입니다.

C# 코딩과 관련된 질문은 아니고 여러 선배님들의 노하우 또는 조언을 듣고자 합니다.
직접적인 코드를 올려주진 마시고, 대략 이런 방식으로 한다 또는 이런 방식 검토해봐라 정도만 알려주시면 매우 감사하겠습니다.

본론으로 들어가서
저는 원격 서버에 Background 에서 돌고 있는 다수의 Middleware 를 C# 으로 개발 중입니다.
제 PC에서 원격 서버에서 실행 중인 Middleware Process 들의 상태 관리를 하고자 하며, 다음 2가지를 목표로 하고 있습니다.

  1. 원격에서 실행 중인 Process 상태 관리 (실행 여부 정도만 관리)
  2. 원격에서 실행 중인 Process 종료 / 실행

현재 생각 중인 방법은

  1. Socket 통신으로 Heartbeat 을 주고 받으면서 상태 체크를 한다.
  2. Process 실행 / 종료를 위해서는 원격 서버에 Agent Process 를 만들어 실행해두고
    Agent 를 통해서 각 Middleware Process 들의 종료 / 실행한다.

현재 제가 가진 지식과 경험으로 대략 이 정도 생각을 해보았는데요.

혹시 선배님 중에 저와 유사한 경험을 해보신 적이 있으시다면,
제가 생각하는 방법이 괜찮은지, 다른 방법은 없는지 조언을 부탁드립니다.
유사한 경험을 해보지 않았더라도, 힌트 될 만한 아이디어 공유도 매우 감사하고요.

3개의 좋아요

mutex를 이용한 시스템 객체를 활용하는 것도 방법입니다.
워커 프로세스에서 A라는 mutex를 생성하면서 프로세스를 시작하고,
감시 프로세스에서는 A라는 mutex가 생성 되었는지 확인합니다.
만약 워커 프로세스가 죽으면 mutex도 함께 사라지므로 생명주기를 확인하는데 도움이 됩니다.

6개의 좋아요

Connecting to WMI on a Remote Computer - Win32 apps | Microsoft Learn
WMI로 되는 것 같은데 전 윈도우 서비스(디스코드 봇 운용 중) 만들어서 돌릴 것 같네요

4개의 좋아요