60 lines
3.1 KiB
Markdown
60 lines
3.1 KiB
Markdown
# JJServiceManager
|
|
|
|
Windows 서비스 기동/종료 관리 프로그램 (C# WPF, .NET 8)
|
|
|
|
## 실행 파일
|
|
|
|
| 파일 | 크기 | 필요 조건 |
|
|
|---|---|---|
|
|
| `JJServiceManager.exe` (런타임 필요판) | 약 1.4MB | [.NET 8 Desktop Runtime (x64)](https://dotnet.microsoft.com/download/dotnet/8.0) 설치 |
|
|
| `JJServiceManager.exe` (단독 실행판) | 약 65MB | 없음 |
|
|
|
|
항상 **관리자 권한**으로 실행됩니다 (실행할 때 UAC 창이 한 번 뜹니다).
|
|
|
|
## 화면
|
|
|
|
### 초기화면
|
|
- **추가**: Windows 서비스 전체 목록에서 관리할 서비스 선택
|
|
- **삭제**: 체크한 서비스를 목록에서 제외 (Windows 서비스 자체는 건드리지 않음)
|
|
- **선택 Start / 선택 Stop**: 체크한 서비스를 차례로 시작/중지
|
|
- **Windows 강제종료 / Windows 재시작**: 확인 후 즉시 실행 (설정에서 버튼 숨김 가능)
|
|
- **설정**
|
|
- 서비스마다 **Start / Stop / Status / Log** 버튼, 상태는 2초마다 자동 갱신 (초록=실행 중, 빨강=중지됨)
|
|
- 서비스 줄 **우클릭**: 로그 파일 지정 / 로그 폴더 지정 / 경로 해제
|
|
- 하단 **로그**: 작업 기록 (번호 + 체크박스)
|
|
- 전체선택 / 전체취소 / 복사(체크한 줄)
|
|
- **화면클리어**: 새 로그를 화면 맨 위부터 출력, 위로 스크롤하면 이전 로그가 보임, 번호는 이어짐
|
|
- **로그 클리어**: 화면의 로그를 모두 지우고 번호를 1번부터 다시 시작
|
|
- 로그 파일은 어떤 경우에도 지우지 않음
|
|
- **Esc**: 설정에 따라 트레이로 / 완전 종료 (창의 X 버튼도 같음)
|
|
|
|
### 추가 선택 화면
|
|
- 설명 / 상태 / 이름 / 시작유형 열, 열 제목을 누르면 정렬(▲▼)
|
|
- 전체선택 / 전체취소 / 선택완료, 검색
|
|
- 이미 등록된 서비스는 노란색 + 체크된 상태로 표시
|
|
- 체크를 해제하고 선택완료하면 초기화면에서 빠짐
|
|
|
|
### 로그창 (서비스 로그 파일)
|
|
- 로그 **파일** 지정 또는 로그 **폴더** 지정(폴더 안의 가장 최근 수정 파일을 자동 추적)
|
|
- 실시간 표시 (0.5초 간격), 인코딩 자동/UTF-8/CP949
|
|
- 띄우기 방식: 1. 개별 창 / 2. 하나의 창에 탭 / 3. 좌우 분할 비교
|
|
|
|
### 설정
|
|
| 항목 | 내용 |
|
|
|---|---|
|
|
| 컴퓨터 시작시 기동 | 로그인 시 트레이로 자동 실행 (작업 스케줄러 `JJServiceManager` 등록) |
|
|
| 단축키 | 직접 눌러서 지정 (기본 Ctrl + Shift + A), Enable 토글. 누르면 창 보이기/숨기기 |
|
|
| 서비스 시작시 로그보기 | 작업 로그를 초기화면 하단에 표시할지 여부 |
|
|
| 로그창 띄우기 | 개별 창 / 탭 / 좌우 분할 |
|
|
| Esc | 트레이로 (백그라운드) / 완전 종료 |
|
|
| Windows 종료키 | Windows 강제종료 / 재시작 버튼 표시 여부 |
|
|
|
|
## 저장 위치
|
|
- 설정: `%AppData%\JJServiceManager\settings.json`
|
|
- 작업 로그: `%AppData%\JJServiceManager\logs\yyyy-MM-dd.log` (추가만 하고 삭제하지 않음)
|
|
|
|
## 빌드
|
|
[.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) 설치 후 `build.bat` 실행 → `publish` 폴더에 두 가지 exe 생성
|
|
|
|
화면 정의는 `Views/*.xaml`이며 실행 시 읽어들입니다 (XAML 컴파일 없음).
|