From 6c41f5d8839be61b8cd70b2675a023b3dd6b08ae Mon Sep 17 00:00:00 2001 From: vibsin9322 Date: Fri, 22 Aug 2025 10:24:32 +0900 Subject: [PATCH] Add Windows auto-startup configuration and NAS deployment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Windows service startup scripts (start/stop-jaryo-service.bat) - Add auto-startup configuration with Task Scheduler - Add XML task definition for Windows Task Scheduler - Update server.js to bind to specific IP (99.1.110.50) - Add comprehensive auto-startup documentation - Prepare for NAS deployment with existing scripts πŸ€– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .claude/settings.local.json | 5 +- JaryoAutoStart.xml | 45 ++++++++++++++++ README_AUTO_START.md | 101 ++++++++++++++++++++++++++++++++++++ install-auto-startup.bat | 66 +++++++++++++++++++++++ install-task.bat | 53 +++++++++++++++++++ server.js | 8 +-- start-jaryo-service.bat | 84 ++++++++++++++++++++++++++++++ start-simple.bat | 4 ++ stop-jaryo-service.bat | 65 +++++++++++++++++++++++ uninstall-auto-startup.bat | 54 +++++++++++++++++++ 10 files changed, 480 insertions(+), 5 deletions(-) create mode 100644 JaryoAutoStart.xml create mode 100644 README_AUTO_START.md create mode 100644 install-auto-startup.bat create mode 100644 install-task.bat create mode 100644 start-jaryo-service.bat create mode 100644 start-simple.bat create mode 100644 stop-jaryo-service.bat create mode 100644 uninstall-auto-startup.bat diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 6601e89..ca0b572 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -44,7 +44,10 @@ "Bash(scp:*)", "Bash(cat:*)", "Bash(./deploy-manual.sh)", - "Bash(npm install)" + "Bash(npm install)", + "Bash(powershell:*)", + "Bash(schtasks:*)", + "Bash(cmd //c:*)" ], "deny": [], "ask": [], diff --git a/JaryoAutoStart.xml b/JaryoAutoStart.xml new file mode 100644 index 0000000..4eda183 --- /dev/null +++ b/JaryoAutoStart.xml @@ -0,0 +1,45 @@ + + + + 2025-08-22T01:20:00 + COMTREE + Jaryo File Manager μžλ™ μ‹œμž‘ μž‘μ—… + + + + true + PT30S + + + + + S-1-5-18 + HighestAvailable + + + + IgnoreNew + false + false + true + true + false + + false + false + + true + true + false + false + false + PT0S + 7 + + + + C:\Users\COMTREE\claude_code\jaryo\start-simple.bat + C:\Users\COMTREE\claude_code\jaryo + + + \ No newline at end of file diff --git a/README_AUTO_START.md b/README_AUTO_START.md new file mode 100644 index 0000000..c61f907 --- /dev/null +++ b/README_AUTO_START.md @@ -0,0 +1,101 @@ +# Jaryo File Manager μžλ™ μ‹œμž‘ μ„€μ • κ°€μ΄λ“œ + +## πŸš€ μžλ™ μ‹œμž‘ μ„€μ • 방법 + +### 방법 1: 배치 파일 μ‹€ν–‰ (ꢌμž₯) + +1. **κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰** + - `install-auto-startup.bat` νŒŒμΌμ„ 마우슀 우클릭 + - "κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰" 선택 + - μ•ˆλ‚΄μ— 따라 μ§„ν–‰ + +2. **μ„€μ • μ™„λ£Œ ν›„** + - 컴퓨터 μž¬μ‹œμž‘ μ‹œ μžλ™μœΌλ‘œ μ„œλΉ„μŠ€ μ‹œμž‘ + - μ„œλΉ„μŠ€ URL: http://99.1.110.50:3005 + +### 방법 2: μˆ˜λ™ μž‘μ—… μŠ€μΌ€μ€„λŸ¬ μ„€μ • + +1. **μž‘μ—… μŠ€μΌ€μ€„λŸ¬ μ—΄κΈ°** + - Windows ν‚€ + R β†’ `taskschd.msc` μž…λ ₯ β†’ μ—”ν„° + +2. **κΈ°λ³Έ μž‘μ—… λ§Œλ“€κΈ°** + - 였λ₯Έμͺ½ νŒ¨λ„μ—μ„œ "κΈ°λ³Έ μž‘μ—… λ§Œλ“€κΈ°" 클릭 + - 이름: `JaryoFileManagerAutoStart` + - μ„€λͺ…: `Jaryo File Manager μžλ™ μ‹œμž‘` + +3. **트리거 μ„€μ •** + - "컴퓨터λ₯Ό μ‹œμž‘ν•  λ•Œ" 선택 + +4. **λ™μž‘ μ„€μ •** + - "ν”„λ‘œκ·Έλž¨ μ‹œμž‘" 선택 + - ν”„λ‘œκ·Έλž¨/슀크립트: `C:\Users\COMTREE\claude_code\jaryo\start-jaryo-service.bat` + - μ‹œμž‘ μœ„μΉ˜: `C:\Users\COMTREE\claude_code\jaryo` + +5. **κ³ κΈ‰ μ„€μ •** + - "κ°€μž₯ 높은 κΆŒν•œμœΌλ‘œ μ‹€ν–‰" 체크 + - "μž‘μ—…μ΄ 이미 μ‹€ν–‰ 쀑인 경우 κ·œμΉ™": "μƒˆ μΈμŠ€ν„΄μŠ€ μ‹œμž‘ μ•ˆ 함" + +## πŸ”§ μ„œλΉ„μŠ€ 관리 λͺ…λ Ήμ–΄ + +### μˆ˜λ™ μ„œλΉ„μŠ€ μ œμ–΄ +```batch +# μ„œλΉ„μŠ€ μ‹œμž‘ +start-jaryo-service.bat + +# μ„œλΉ„μŠ€ 쀑지 +stop-jaryo-service.bat +``` + +### μžλ™ μ‹œμž‘ 관리 +```batch +# μžλ™ μ‹œμž‘ μ„€μ • +install-auto-startup.bat (κ΄€λ¦¬μž κΆŒν•œ ν•„μš”) + +# μžλ™ μ‹œμž‘ ν•΄μ œ +uninstall-auto-startup.bat (κ΄€λ¦¬μž κΆŒν•œ ν•„μš”) +``` + +### μž‘μ—… μŠ€μΌ€μ€„λŸ¬ λͺ…λ Ήμ–΄ +```cmd +# μž‘μ—… μƒνƒœ 확인 +schtasks /query /tn "JaryoFileManagerAutoStart" + +# μž‘μ—… μˆ˜λ™ μ‹€ν–‰ +schtasks /run /tn "JaryoFileManagerAutoStart" + +# μž‘μ—… μ‚­μ œ +schtasks /delete /tn "JaryoFileManagerAutoStart" /f +``` + +## 🌐 접속 정보 + +- **κ΄€λ¦¬μž νŽ˜μ΄μ§€**: http://99.1.110.50:3005/admin/index.html +- **메인 νŽ˜μ΄μ§€**: http://99.1.110.50:3005/index.html +- **API**: http://99.1.110.50:3005/api/files +- **μƒνƒœ 확인**: http://99.1.110.50:3005/health + +## πŸ“ 둜그 확인 + +- **둜그 파일**: `C:\Users\COMTREE\claude_code\jaryo\logs\app.log` +- **둜그 보기**: `type "C:\Users\COMTREE\claude_code\jaryo\logs\app.log"` + +## ⚠️ 문제 ν•΄κ²° + +### μ„œλΉ„μŠ€κ°€ μ‹œμž‘λ˜μ§€ μ•ŠλŠ” 경우 +1. Node.jsκ°€ μ„€μΉ˜λ˜μ–΄ μžˆλŠ”μ§€ 확인: `node --version` +2. ν”„λ‘œμ νŠΈ 디렉토리가 μ˜¬λ°”λ₯Έμ§€ 확인 +3. 포트 3005κ°€ μ‚¬μš© 쀑인지 확인: `netstat -an | findstr :3005` +4. 둜그 파일 확인 + +### μžλ™ μ‹œμž‘μ΄ μž‘λ™ν•˜μ§€ μ•ŠλŠ” 경우 +1. μž‘μ—… μŠ€μΌ€μ€„λŸ¬μ—μ„œ μž‘μ—… μƒνƒœ 확인 +2. κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ„€μ •ν–ˆλŠ”μ§€ 확인 +3. 배치 파일 κ²½λ‘œκ°€ μ˜¬λ°”λ₯Έμ§€ 확인 + +## πŸ“ž 지원 + +λ¬Έμ œκ°€ λ°œμƒν•˜λ©΄ λ‹€μŒμ„ ν™•μΈν•΄μ£Όμ„Έμš”: +1. 둜그 파일 λ‚΄μš© +2. μž‘μ—… μŠ€μΌ€μ€„λŸ¬ μž‘μ—… μƒνƒœ +3. 포트 μ‚¬μš© ν˜„ν™© +4. Node.js μ„€μΉ˜ μƒνƒœ \ No newline at end of file diff --git a/install-auto-startup.bat b/install-auto-startup.bat new file mode 100644 index 0000000..6cbd9f8 --- /dev/null +++ b/install-auto-startup.bat @@ -0,0 +1,66 @@ +@echo off +REM Windows μž‘μ—… μŠ€μΌ€μ€„λŸ¬λ₯Ό μ‚¬μš©ν•œ μžλ™ μ‹œμž‘ μ„€μ • 슀크립트 +REM κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰ ν•„μš” + +echo === Jaryo File Manager μžλ™ μ‹œμž‘ μ„€μ • === +echo. + +REM κ΄€λ¦¬μž κΆŒν•œ 확인 +net session >nul 2>&1 +if %errorlevel% neq 0 ( + echo 였λ₯˜: 이 μŠ€ν¬λ¦½νŠΈλŠ” κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. + echo 마우슀 우클릭 ν›„ "κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰"을 μ„ νƒν•΄μ£Όμ„Έμš”. + pause + exit /b 1 +) + +set PROJECT_DIR=C:\Users\COMTREE\claude_code\jaryo +set TASK_NAME=JaryoFileManagerAutoStart + +echo ν”„λ‘œμ νŠΈ 디렉토리: %PROJECT_DIR% +echo μž‘μ—… 이름: %TASK_NAME% +echo. + +REM κΈ°μ‘΄ μž‘μ—…μ΄ 있으면 μ‚­μ œ +schtasks /query /tn "%TASK_NAME%" >nul 2>&1 +if %errorlevel% equ 0 ( + echo κΈ°μ‘΄ μžλ™ μ‹œμž‘ μž‘μ—…μ„ μ œκ±°ν•©λ‹ˆλ‹€... + schtasks /delete /tn "%TASK_NAME%" /f +) + +REM μƒˆλ‘œμš΄ μžλ™ μ‹œμž‘ μž‘μ—… 생성 +echo μƒˆλ‘œμš΄ μžλ™ μ‹œμž‘ μž‘μ—…μ„ μƒμ„±ν•©λ‹ˆλ‹€... + +REM μ‹œμŠ€ν…œ μ‹œμž‘ μ‹œ μ‹€ν–‰λ˜λŠ” μž‘μ—… 생성 +schtasks /create /tn "%TASK_NAME%" ^ + /tr "\"%PROJECT_DIR%\start-jaryo-service.bat\"" ^ + /sc onstart ^ + /ru "SYSTEM" ^ + /rl highest ^ + /f + +if %errorlevel% equ 0 ( + echo. + echo βœ… μžλ™ μ‹œμž‘ μž‘μ—…μ΄ μ„±κ³΅μ μœΌλ‘œ μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€! + echo. + echo === μ„€μ • 정보 === + echo μž‘μ—… 이름: %TASK_NAME% + echo μ‹€ν–‰ 파일: %PROJECT_DIR%\start-jaryo-service.bat + echo 트리거: μ‹œμŠ€ν…œ μ‹œμž‘ μ‹œ + echo μ‹€ν–‰ 계정: SYSTEM + echo. + echo === 관리 λͺ…λ Ήμ–΄ === + echo μž‘μ—… 확인: schtasks /query /tn "%TASK_NAME%" + echo μˆ˜λ™ μ‹€ν–‰: schtasks /run /tn "%TASK_NAME%" + echo μž‘μ—… μ‚­μ œ: schtasks /delete /tn "%TASK_NAME%" /f + echo. + echo 이제 컴퓨터λ₯Ό μž¬μ‹œμž‘ν•˜λ©΄ Jaryo File Managerκ°€ μžλ™μœΌλ‘œ μ‹œμž‘λ©λ‹ˆλ‹€. + echo μ„œλΉ„μŠ€ URL: http://99.1.110.50:3005 +) else ( + echo. + echo ❌ μžλ™ μ‹œμž‘ μž‘μ—… 생성에 μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€. + echo κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰ν–ˆλŠ”μ§€ ν™•μΈν•΄μ£Όμ„Έμš”. +) + +echo. +pause \ No newline at end of file diff --git a/install-task.bat b/install-task.bat new file mode 100644 index 0000000..91f2c92 --- /dev/null +++ b/install-task.bat @@ -0,0 +1,53 @@ +@echo off +REM μž‘μ—… μŠ€μΌ€μ€„λŸ¬μ— XML 파일둜 μž‘μ—… 등둝 +echo === Jaryo File Manager μžλ™ μ‹œμž‘ μ„€μ • === +echo. + +REM κ΄€λ¦¬μž κΆŒν•œ 확인 +net session >nul 2>&1 +if %errorlevel% neq 0 ( + echo This script requires administrator privileges. + echo Right-click and select "Run as administrator" + pause + exit /b 1 +) + +set TASK_NAME=JaryoFileManagerAutoStart +set XML_FILE=%~dp0JaryoAutoStart.xml + +echo Task Name: %TASK_NAME% +echo XML File: %XML_FILE% +echo. + +REM κΈ°μ‘΄ μž‘μ—… μ‚­μ œ (μžˆλŠ” 경우) +schtasks /query /tn "%TASK_NAME%" >nul 2>&1 +if %errorlevel% equ 0 ( + echo Removing existing task... + schtasks /delete /tn "%TASK_NAME%" /f +) + +REM XML 파일둜 μž‘μ—… 생성 +echo Creating new auto-start task... +schtasks /create /tn "%TASK_NAME%" /xml "%XML_FILE%" + +if %errorlevel% equ 0 ( + echo. + echo SUCCESS: Auto-start task created successfully! + echo. + echo Task Name: %TASK_NAME% + echo Service URL: http://99.1.110.50:3005 + echo. + echo The service will start automatically on system boot. +) else ( + echo. + echo ERROR: Failed to create auto-start task. + echo Please run this script as administrator. +) + +echo. +echo Management commands: +echo Check task: schtasks /query /tn "%TASK_NAME%" +echo Run task: schtasks /run /tn "%TASK_NAME%" +echo Delete task: schtasks /delete /tn "%TASK_NAME%" /f +echo. +pause \ No newline at end of file diff --git a/server.js b/server.js index f82c3d5..d6d405c 100644 --- a/server.js +++ b/server.js @@ -827,11 +827,11 @@ module.exports = app; // 둜컬 개발 ν™˜κ²½μ—μ„œλ§Œ μ„œλ²„ μ‹œμž‘ if (process.env.NODE_ENV !== 'production' || process.env.VERCEL !== '1') { - const server = app.listen(PORT, () => { + const server = app.listen(PORT, '99.1.110.50', () => { console.log(`πŸš€ μžλ£Œμ‹€ μ„œλ²„κ°€ 포트 ${PORT}μ—μ„œ μ‹€ν–‰μ€‘μž…λ‹ˆλ‹€.`); - console.log(`πŸ“± Admin νŽ˜μ΄μ§€: http://localhost:${PORT}/admin/index.html`); - console.log(`🌐 Main νŽ˜μ΄μ§€: http://localhost:${PORT}/index.html`); - console.log(`πŸ“Š API: http://localhost:${PORT}/api/files`); + console.log(`πŸ“± Admin νŽ˜μ΄μ§€: http://99.1.110.50:${PORT}/admin/index.html`); + console.log(`🌐 Main νŽ˜μ΄μ§€: http://99.1.110.50:${PORT}/index.html`); + console.log(`πŸ“Š API: http://99.1.110.50:${PORT}/api/files`); }); // λŒ€μš©λŸ‰ 파일 λ‹€μš΄λ‘œλ“œλ₯Ό μœ„ν•΄ μ„œλ²„ νƒ€μž„μ•„μ›ƒμ„ 30λΆ„μœΌλ‘œ μ„€μ • diff --git a/start-jaryo-service.bat b/start-jaryo-service.bat new file mode 100644 index 0000000..5f2a761 --- /dev/null +++ b/start-jaryo-service.bat @@ -0,0 +1,84 @@ +@echo off +REM Windows용 Jaryo File Manager μžλ™ μ‹œμž‘ 슀크립트 +REM μ‚¬μš©λ²•: start-jaryo-service.bat + +echo === Jaryo File Manager μ„œλΉ„μŠ€ μ‹œμž‘ === +echo μ‹œμž‘ μ‹œκ°„: %date% %time% + +REM ν”„λ‘œμ νŠΈ 디렉토리 μ„€μ • +set PROJECT_DIR=C:\Users\COMTREE\claude_code\jaryo +set LOG_FILE=%PROJECT_DIR%\logs\app.log +set PID_FILE=%PROJECT_DIR%\app.pid + +echo ν”„λ‘œμ νŠΈ 디렉토리: %PROJECT_DIR% +echo 둜그 파일: %LOG_FILE% + +REM 둜그 디렉토리 생성 +if not exist "%PROJECT_DIR%\logs" mkdir "%PROJECT_DIR%\logs" + +REM ν”„λ‘œμ νŠΈ λ””λ ‰ν† λ¦¬λ‘œ 이동 +cd /d "%PROJECT_DIR%" || ( + echo 였λ₯˜: ν”„λ‘œμ νŠΈ 디렉토리λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€: %PROJECT_DIR% + pause + exit /b 1 +) + +REM Node.js와 npm 경둜 확인 +where node >nul 2>&1 +if %errorlevel% neq 0 ( + echo 였λ₯˜: Node.jsκ°€ μ„€μΉ˜λ˜μ§€ μ•Šμ•˜κ±°λ‚˜ PATH에 μ—†μŠ΅λ‹ˆλ‹€. + pause + exit /b 1 +) + +REM μ˜μ‘΄μ„± μ„€μΉ˜ 확인 +if not exist "node_modules" ( + echo μ˜μ‘΄μ„± μ„€μΉ˜ 쀑... + npm install +) + +REM κΈ°μ‘΄ ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ (PID 파일이 있으면) +if exist "%PID_FILE%" ( + echo κΈ°μ‘΄ ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ 쀑... + call stop-jaryo-service.bat + timeout /t 3 /nobreak >nul +) + +REM μ„œλΉ„μŠ€ μ‹œμž‘ (λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰) +echo μ„œλΉ„μŠ€ μ‹œμž‘ 쀑... +start "" /min cmd /c "node server.js >> "%LOG_FILE%" 2>&1" + +REM ν”„λ‘œμ„ΈμŠ€ ID μ €μž₯을 μœ„ν•΄ μž μ‹œ λŒ€κΈ° +timeout /t 2 /nobreak >nul + +REM μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€ 확인 +for /f "tokens=2" %%i in ('tasklist /fi "imagename eq node.exe" /fo csv /nh ^| findstr server.js') do ( + echo %%i > "%PID_FILE%" + echo μ„œλΉ„μŠ€κ°€ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. PID: %%i + goto :found +) + +REM PIDλ₯Ό μ°Ύμ§€ λͺ»ν•œ 경우 (λ‹€λ₯Έ λ°©λ²•μœΌλ‘œ 확인) +wmic process where "name='node.exe' and commandline like '%%server.js%%'" get processid /value 2>nul | findstr "ProcessId" > temp_pid.txt +if exist temp_pid.txt ( + for /f "tokens=2 delims==" %%i in (temp_pid.txt) do ( + echo %%i > "%PID_FILE%" + echo μ„œλΉ„μŠ€κ°€ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. PID: %%i + del temp_pid.txt + goto :found + ) + del temp_pid.txt +) + +echo ν”„λ‘œμ„ΈμŠ€ IDλ₯Ό 확인할 수 μ—†μŠ΅λ‹ˆλ‹€. μˆ˜λ™μœΌλ‘œ ν™•μΈν•΄μ£Όμ„Έμš”. + +:found +echo. +echo === μ„œλΉ„μŠ€ 정보 === +echo κ΄€λ¦¬μž νŽ˜μ΄μ§€: http://99.1.110.50:3005/admin/index.html +echo 메인 νŽ˜μ΄μ§€: http://99.1.110.50:3005/index.html +echo API: http://99.1.110.50:3005/api/files +echo 둜그 확인: type "%LOG_FILE%" +echo μ„œλΉ„μŠ€ 쀑지: stop-jaryo-service.bat +echo. +echo μ„œλΉ„μŠ€κ°€ μ„±κ³΅μ μœΌλ‘œ μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. \ No newline at end of file diff --git a/start-simple.bat b/start-simple.bat new file mode 100644 index 0000000..a56c9e6 --- /dev/null +++ b/start-simple.bat @@ -0,0 +1,4 @@ +@echo off +cd /d "C:\Users\COMTREE\claude_code\jaryo" +echo Starting Jaryo File Manager... +node server.js \ No newline at end of file diff --git a/stop-jaryo-service.bat b/stop-jaryo-service.bat new file mode 100644 index 0000000..5067ac3 --- /dev/null +++ b/stop-jaryo-service.bat @@ -0,0 +1,65 @@ +@echo off +REM Windows용 Jaryo File Manager μ„œλΉ„μŠ€ 쀑지 슀크립트 +REM μ‚¬μš©λ²•: stop-jaryo-service.bat + +echo === Jaryo File Manager μ„œλΉ„μŠ€ 쀑지 === +echo 쀑지 μ‹œκ°„: %date% %time% + +set PROJECT_DIR=C:\Users\COMTREE\claude_code\jaryo +set PID_FILE=%PROJECT_DIR%\app.pid + +REM PID 파일이 μžˆλŠ” 경우 +if exist "%PID_FILE%" ( + for /f %%i in (%PID_FILE%) do ( + echo ν”„λ‘œμ„ΈμŠ€ ID: %%i + echo μ„œλΉ„μŠ€ 쀑지 쀑... + + REM ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ + taskkill /pid %%i /f >nul 2>&1 + if %errorlevel% equ 0 ( + echo μ„œλΉ„μŠ€κ°€ μ€‘μ§€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. + ) else ( + echo ν”„λ‘œμ„ΈμŠ€κ°€ 이미 μ’…λ£Œλ˜μ—ˆκ±°λ‚˜ μ’…λ£Œν•  수 μ—†μŠ΅λ‹ˆλ‹€. + ) + ) + + REM PID 파일 μ‚­μ œ + del "%PID_FILE%" +) else ( + echo PID νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. Node.js ν”„λ‘œμ„ΈμŠ€λ₯Ό 직접 ν™•μΈν•©λ‹ˆλ‹€. +) + +REM μ‹€ν–‰ 쀑인 λͺ¨λ“  κ΄€λ ¨ Node.js ν”„λ‘œμ„ΈμŠ€ 확인 및 μ’…λ£Œ +echo. +echo μ‹€ν–‰ 쀑인 Jaryo κ΄€λ ¨ Node.js ν”„λ‘œμ„ΈμŠ€λ₯Ό ν™•μΈν•©λ‹ˆλ‹€... + +REM server.jsλ₯Ό μ‹€ν–‰ν•˜λŠ” λͺ¨λ“  node.exe ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ +for /f "tokens=2" %%i in ('tasklist /fi "imagename eq node.exe" /fo table /nh 2^>nul ^| findstr /i "node.exe"') do ( + wmic process where "processid=%%i and commandline like '%%server.js%%'" get commandline /value 2>nul | findstr "server.js" >nul + if not errorlevel 1 ( + echo Jaryo μ„œλΉ„μŠ€ ν”„λ‘œμ„ΈμŠ€ 발견 - PID: %%i + taskkill /pid %%i /f >nul 2>&1 + if not errorlevel 1 ( + echo ν”„λ‘œμ„ΈμŠ€ %%iκ°€ μ’…λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. + ) + ) +) + +REM cmd ν”„λ‘œμ„ΈμŠ€ μ€‘μ—μ„œ node server.jsλ₯Ό μ‹€ν–‰ν•˜λŠ” 것도 확인 +for /f "tokens=2" %%i in ('tasklist /fi "imagename eq cmd.exe" /fo table /nh 2^>nul ^| findstr /i "cmd.exe"') do ( + wmic process where "processid=%%i and commandline like '%%server.js%%'" get commandline /value 2>nul | findstr "server.js" >nul + if not errorlevel 1 ( + echo Jaryo κ΄€λ ¨ CMD ν”„λ‘œμ„ΈμŠ€ 발견 - PID: %%i + taskkill /pid %%i /f >nul 2>&1 + if not errorlevel 1 ( + echo CMD ν”„λ‘œμ„ΈμŠ€ %%iκ°€ μ’…λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. + ) + ) +) + +echo. +echo === ν˜„μž¬ μ‹€ν–‰ 쀑인 Node.js ν”„λ‘œμ„ΈμŠ€ === +tasklist /fi "imagename eq node.exe" 2>nul | findstr "node.exe" || echo Node.js ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜μ§€ μ•ŠμŒ + +echo. +echo μ„œλΉ„μŠ€ 쀑지가 μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. \ No newline at end of file diff --git a/uninstall-auto-startup.bat b/uninstall-auto-startup.bat new file mode 100644 index 0000000..c328d3e --- /dev/null +++ b/uninstall-auto-startup.bat @@ -0,0 +1,54 @@ +@echo off +REM Windows μž‘μ—… μŠ€μΌ€μ€„λŸ¬μ—μ„œ μžλ™ μ‹œμž‘ μ„€μ • 제거 슀크립트 +REM κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰ ν•„μš” + +echo === Jaryo File Manager μžλ™ μ‹œμž‘ μ„€μ • 제거 === +echo. + +REM κ΄€λ¦¬μž κΆŒν•œ 확인 +net session >nul 2>&1 +if %errorlevel% neq 0 ( + echo 였λ₯˜: 이 μŠ€ν¬λ¦½νŠΈλŠ” κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. + echo 마우슀 우클릭 ν›„ "κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰"을 μ„ νƒν•΄μ£Όμ„Έμš”. + pause + exit /b 1 +) + +set TASK_NAME=JaryoFileManagerAutoStart + +echo μž‘μ—… 이름: %TASK_NAME% +echo. + +REM μž‘μ—… 쑴재 μ—¬λΆ€ 확인 +schtasks /query /tn "%TASK_NAME%" >nul 2>&1 +if %errorlevel% neq 0 ( + echo ⚠️ μžλ™ μ‹œμž‘ μž‘μ—…μ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. + echo 이미 μ œκ±°λ˜μ—ˆκ±°λ‚˜ μ„€μΉ˜λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. + goto :end +) + +REM ν˜„μž¬ μ‹€ν–‰ 쀑인 μ„œλΉ„μŠ€ 쀑지 +echo ν˜„μž¬ μ‹€ν–‰ 쀑인 μ„œλΉ„μŠ€λ₯Ό μ€‘μ§€ν•©λ‹ˆλ‹€... +call "%~dp0stop-jaryo-service.bat" + +echo. +echo μžλ™ μ‹œμž‘ μž‘μ—…μ„ μ œκ±°ν•©λ‹ˆλ‹€... + +REM μž‘μ—… μ‚­μ œ +schtasks /delete /tn "%TASK_NAME%" /f + +if %errorlevel% equ 0 ( + echo. + echo βœ… μžλ™ μ‹œμž‘ μž‘μ—…μ΄ μ„±κ³΅μ μœΌλ‘œ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€! + echo. + echo 이제 컴퓨터λ₯Ό μž¬μ‹œμž‘ν•΄λ„ Jaryo File Managerκ°€ μžλ™μœΌλ‘œ μ‹œμž‘λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. + echo μˆ˜λ™μœΌλ‘œ μ„œλΉ„μŠ€λ₯Ό μ‹œμž‘ν•˜λ €λ©΄ start-jaryo-service.batλ₯Ό μ‹€ν–‰ν•˜μ„Έμš”. +) else ( + echo. + echo ❌ μžλ™ μ‹œμž‘ μž‘μ—… μ œκ±°μ— μ‹€νŒ¨ν–ˆμŠ΅λ‹ˆλ‹€. + echo κ΄€λ¦¬μž κΆŒν•œμœΌλ‘œ μ‹€ν–‰ν–ˆλŠ”μ§€ ν™•μΈν•΄μ£Όμ„Έμš”. +) + +:end +echo. +pause \ No newline at end of file