Skip to content

hotsixman/GEEP

Repository files navigation

GEEP (Go + Keep) 🚀

GEEP은 Go로 개발된 경량 프로세스 매니저입니다. 복잡한 설정 없이도 백그라운드에서 프로그램을 실행하고 관리할 수 있도록 설계되었습니다.


✨ 주요 기능

  • 백그라운드 상주 (Daemon): 터미널을 닫아도 프로그램이 종료되지 않도록 백그라운드에서 안전하게 관리합니다.
  • 자동 복구 (Auto-restart): 프로그램이 예상치 못하게 종료되어도 설정된 횟수만큼 자동으로 다시 실행합니다.
  • 실시간 상태 모니터링: 실행 중인 각 프로그램의 CPU, 메모리 사용량 및 상태를 한눈에 확인할 수 있습니다.
  • TUI 로그 스트리밍 (Connect): 관리 중인 프로세스에 연결하여 실시간 로그를 확인하고 명령어를 전달할 수 있습니다.
  • 운영체제 지원: Windows 및 Unix 기반 시스템을 지원합니다.
  • 로그 기록: 관리 중인 프로그램의 출력 내용(Log)을 자동으로 저장하며, 크기 제한을 설정할 수 있습니다.

🛠 사용 방법

1. GEEP 시작 (초기화)

프로세스 관리를 시작하기 위해 GEEP 데몬을 백그라운드에서 실행합니다. 이 작업은 처음에 한 번만 수행하면 됩니다.

geep init

2. 프로그램 실행하기 (start)

관리할 프로그램을 등록하고 실행합니다. --name은 필수 옵션입니다.

geep start "[실행할_명령어]" --name [프로세스_이름] 

예시: node 서버 실행

geep start node app.js --name my-app --cwd "/path/to/project"

3. 상태 확인하기 (list)

현재 관리 중인 프로그램들의 목록과 리소스 사용량을 확인합니다.

geep list

4. 프로세스 연결하기 (connect)

실시간 로그를 확인하고 표준 입력(stdin)을 통해 명령을 전달할 수 있는 전용 TUI 화면으로 진입합니다.

geep connect [프로세스_이름]

5. 제어하기 (stop, restart, delete)

  • 중지: 실행 중인 프로그램을 멈춥니다.
geep stop [프로세스_이름]
  • 재시작: 프로그램을 다시 시작합니다.
geep restart [프로세스_이름]
  • 삭제: 관리 목록에서 프로그램을 완전히 제거합니다.
geep delete [프로세스_이름]

6. GEEP 종료 (terminate)

백그라운드에서 실행 중인 GEEP 데몬 프로세스를 종료합니다.

geep terminate

💡 전역 옵션 (Global Options)

모든 geep 명령에서 사용할 수 있는 전역 옵션입니다.

  • --geepdir: .geep 디렉토리(로그, 데이터베이스, 소켓 등이 저장되는 경로)의 위치를 직접 지정합니다.
    • 지정하지 않을 경우 기본값은 사용자의 홈 디렉토리 내 .geep입니다.
    • 예시: geep list --geepdir "/custom/path"

💡 주요 옵션 (start 시 사용)

  • --name: 프로세스의 고유 이름을 지정합니다. (필수)
  • --cwd: 프로그램이 실행될 작업 디렉토리를 지정합니다. (기본값: 현재 디렉토리)
  • --env: 프로그램 실행 시 필요한 환경 변수를 설정합니다. (예: --env KEY=VALUE,FOO=BAR)
  • --max-recover: 자동 재실행 시도 횟수를 설정합니다. (기본값: 10회)
  • --max-log: 로그 파일의 최대 크기(KB)를 설정합니다. (기본값: 102400 KB)

📂 파일 위치

  • 설정 및 소켓: ~/.geep/ (사용자 홈 디렉토리 내 .geep 폴더)
  • 로그 파일: ~/.geep/log~/.geep/log-process 내의 각 프로세스별 로그

About

Go based process manager

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages