Windows 서버에서 프로그램 자동 실행하기
Windows 서버에서 게임 서버나 봇을 계속 켜두는 방법입니다. 원격 데스크톱 창을 닫을 때 주의할 점, 꺼지면 자동으로 다시 켜기, 서버 재부팅 후 자동 실행까지 정리했습니다.
먼저 알아둘 것: "연결 끊기"와 "로그아웃"은 다릅니다
- 원격 데스크톱 창을 X 버튼으로 닫으면 연결만 끊기고, 서버 안의 프로그램은 계속 실행됩니다.
- 서버 안에서 시작 → 로그아웃을 누르면 내가 실행한 프로그램이 모두 꺼집니다.
프로그램을 켜둔 채 나올 때는 창의 X 버튼으로 닫으세요.
1. 꺼지면 자동으로 다시 켜지게 하기
프로그램이 오류로 꺼져도 다시 실행되도록 .bat 파일을 만듭니다. 메모장에 아래 내용을 적고, 파일 형식을 "모든 파일"로 바꿔 start.bat으로 저장합니다.
@echo off
cd /d C:\myserver
:loop
java -Xmx4G -jar server.jar nogui
echo Server stopped. Restarting in 10 seconds...
timeout /t 10
goto loop
C:\myserver는 프로그램이 있는 폴더로,java ...줄은 실제 실행 명령어로 바꿉니다. (예: Node.js 봇이라면node index.js)- 완전히 끄려면 창을 닫거나
Ctrl + C를 누른 뒤Y를 입력합니다.
2. 서버가 재부팅되면 자동으로 켜기
Windows 업데이트 등으로 서버가 재부팅되면, 아무도 로그인하지 않은 상태에서는 프로그램이 다시 켜지지 않습니다. 작업 스케줄러에 등록해두면 서버가 켜질 때 자동으로 실행됩니다.
- 시작 메뉴에서 작업 스케줄러를 엽니다.
- 오른쪽의 작업 만들기를 누릅니다.
- 일반 탭
- 이름: 알아보기 쉬운 이름 (예:
내 서버) - 사용자의 로그온 여부에 관계없이 실행 선택
- 가장 높은 수준의 권한으로 실행 체크
- 이름: 알아보기 쉬운 이름 (예:
- 트리거 탭 → 새로 만들기 → 작업 시작: 시작할 때 → 확인
- 동작 탭 → 새로 만들기
- 프로그램/스크립트: 위에서 만든
C:\myserver\start.bat - 시작 위치:
C:\myserver(꼭 입력하세요. 비워두면 프로그램이 파일을 못 찾는 경우가 많습니다)
- 프로그램/스크립트: 위에서 만든
- 설정 탭에서 작업을 일정 시간 이상 실행하면 중지하는 항목(기본값 3일)의 체크를 해제합니다. 체크되어 있으면 3일 뒤 프로그램이 꺼집니다.
- 확인을 누르고 서버 계정 비밀번호를 입력합니다.
이 방식으로 실행된 프로그램은 화면에 창이 보이지 않고 뒤에서 실행됩니다. 실행 중인지는 작업 관리자의 세부 정보 탭에서
java.exe,node.exe등을 찾아 확인할 수 있습니다. 끄려면 작업 스케줄러에서 해당 작업을 선택하고 종료를 누릅니다.
창을 보면서 쓰고 싶다면
콘솔 창을 직접 보면서 명령어를 입력해야 하는 프로그램이라면, 로그인할 때 실행되도록 등록합니다.
Win + R→shell:startup입력 → 확인- 열린 폴더에
start.bat의 바로 가기를 넣습니다. (파일을 마우스 오른쪽 버튼으로 끌어다 놓고 "바로 가기 만들기")
이 방식은 원격 데스크톱으로 로그인해야 실행됩니다. 서버가 재부팅됐다면 한 번 접속해주세요.
참고
- 한국 시간·한글 설정은 Windows 서버 한국어·한국 시간 설정을 참고하세요.
- 외부에서 접속해야 하는 프로그램이라면 방화벽 포트 열기도 함께 확인하세요.