Преглед на файлове

* Batch files (Windows) now detect whether the server crashed, aborted or shutdown cleanly (Ctrl+C or @mapexit) and print appropriate message, instead of always assuming, that the server crashed (bugreport:3476, since r1818).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14484 54d463be-8e91-2dee-dedb-b68131a5f0ec
ai4rei преди 14 години
родител
ревизия
611892db22
променени са 8 файла, в които са добавени 72 реда и са изтрити 54 реда
  1. 1 0
      Changelog-Trunk.txt
  2. 2 9
      charserv-sql.bat
  3. 2 9
      charserv.bat
  4. 2 9
      logserv-sql.bat
  5. 2 9
      logserv.bat
  6. 2 9
      mapserv-sql.bat
  7. 2 9
      mapserv.bat
  8. 59 0
      serv.bat

+ 1 - 0
Changelog-Trunk.txt

@@ -3,6 +3,7 @@ Date	Added
 2010/11/22
 	* mail_deliveryfail no longer attempts to log (since r12910) and give items (since r11855), when there is no item attached to the mail (bugreport:3239). [Ai4rei]
 	* Fixed a crash when shutting down char-server (TXT only), after it failed to load storage save data (since r1275). [Ai4rei]
+	* Batch files (Windows) now detect whether the server crashed, aborted or shutdown cleanly (Ctrl+C or @mapexit) and print appropriate message, instead of always assuming, that the server crashed (bugreport:3476, since r1818). [Ai4rei]
 2010/11/21
 	* Added msinttypes (rev. 26, http://msinttypes.googlecode.com/svn/trunk/) portability framework for Visual C++ compilers (related bugreport:4059). [Ai4rei]
 	* Added 64-bit variants of the socket and buffer I/O macros. [Ai4rei]

+ 2 - 9
charserv-sql.bat

@@ -1,9 +1,2 @@
-@echo off
-rem Writen by Jbain
-:end
-char-server_sql.exe
-echo .
-echo .
-echo Char server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
-PING -n 15 127.0.0.1 >nul
-goto end
+@ECHO OFF
+CALL serv.bat char-server_sql.exe Char-Server

+ 2 - 9
charserv.bat

@@ -1,9 +1,2 @@
-@echo off
-rem Writen by Jbain
-:end
-char-server.exe
-echo .
-echo .
-echo Char server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
-PING -n 15 127.0.0.1 >nul
-goto end
+@ECHO OFF
+CALL serv.bat char-server.exe Char-Server

+ 2 - 9
logserv-sql.bat

@@ -1,9 +1,2 @@
-@echo off
-rem Writen by Jbain
-:end
-login-server_sql.exe
-echo .
-echo .
-echo Login server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
-PING -n 15 127.0.0.1 >nul
-goto end
+@ECHO OFF
+CALL serv.bat login-server_sql.exe Login-Server

+ 2 - 9
logserv.bat

@@ -1,9 +1,2 @@
-@echo off
-rem Writen by Jbain
-:end
-login-server.exe
-echo .
-echo .
-echo Login server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
-PING -n 15 127.0.0.1 >nul
-goto end
+@ECHO OFF
+CALL serv.bat login-server.exe Login-Server

+ 2 - 9
mapserv-sql.bat

@@ -1,9 +1,2 @@
-@echo off
-rem Writen by Jbain
-:end
-map-server_sql.exe
-echo .
-echo .
-echo Map server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
-PING -n 15 127.0.0.1 >nul
-goto end
+@ECHO OFF
+CALL serv.bat map-server_sql.exe Map-Server

+ 2 - 9
mapserv.bat

@@ -1,9 +1,2 @@
-@echo off
-rem Writen by Jbain
-:end
-map-server.exe
-echo .
-echo .
-echo Map server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
-PING -n 15 127.0.0.1 >nul
-goto end
+@ECHO OFF
+CALL serv.bat map-server.exe Map-Server

+ 59 - 0
serv.bat

@@ -0,0 +1,59 @@
+@ECHO OFF
+IF "%1"=="" GOTO DIRECT
+IF "%2"=="" GOTO DIRECT
+IF NOT EXIST "%1" GOTO NOTFOUND
+GOTO START
+
+REM == How RESTART_9X and RESTART_NT works =========================
+REM On Windows 9x only the first 8 characters are significant for
+REM labels, and the first matching one is called (RESTART_(9X)).
+REM Windows NT calls the exact named label (RESTART_NT).
+REM Separation between 9X and NT is required, because CHOICE has
+REM different syntax on these platforms or does not exist as all.
+REM ================================================================
+
+REM Windows 95, 98, ME
+:RESTART_9X
+REM Old Ctrl+C in PING does not work, because that only stops ping,
+REM not the batch file.
+CHOICE /C:rc /N /T:R,15 Restarting in 15 seconds, press 'C' to cancel.
+IF NOT ERRORLEVEL 2 GOTO START
+GOTO END
+
+REM Windows 2000, XP, Vista, 7
+:RESTART_NT
+REM There is no CHOICE in 2000 and XP, but you get asked whether to
+REM abort the batch file, when pressing Ctrl+C in PING.
+ECHO Restarting in 15 seconds, press Ctrl+C to cancel.
+PING -n 15 127.0.0.1 > NUL
+
+:START
+%1
+ECHO.
+REM Return value > 1 is exception&~0xC0000000
+IF ERRORLEVEL 2 GOTO CRASHED
+REM Return value 1 is EXIT_FAILURE
+IF ERRORLEVEL 1 GOTO EXIT1
+REM Return value 0 is EXIT_SUCCESS
+ECHO %2 has shutdown successfully.
+GOTO RESTART_NT
+
+:EXIT1
+ECHO %2 has terminated abnormally.
+GOTO RESTART_NT
+
+:CRASHED
+ECHO %2 has crashed!
+GOTO RESTART_NT
+
+:DIRECT
+ECHO Do not run this file directly. It is used by logserv.bat, charserv.bat,
+ECHO mapserv.bat and their '-sql' counterparts.
+GOTO END
+
+:NOTFOUND
+ECHO %1 was not found. Make sure, that you have compiled the %2.
+GOTO END
+
+:END
+PAUSE