도스 cmd 에서 배치 파일 임시로 wait 명령어 구현하기(sleep)
도스 배치 파일(batch process file command) 명령어에서, 임시로 wait(일정 시간동안 기다리게 하는 명령) 명령어 구현하기(sleep)
PC에 서비스로 등록된 에이전트를 통해 톰캣을 재시작 하려고 했는데
서버를 shutdown 하고 Tomcat8.exe를 호출했다.
그냥 할때는 잘 됐는데 agent를 통해서 하면
80포트 사용하고 있어서 Tomcat8.exe가 호출이 안됬다..
최악의 상황이다. 톰캣 서버가 죽어만 있으니..
왜 그럴까 생각해봤는데 아직 shutdown이 안끝난 상태에서
서버를 킬려고 하니 80포트가 아직 안닫혀 있어서 그런것 같았다.
그래서 아직 해보진 않았지만 Tomcat8.exe 실행할때 약간의 delay를 주려고 했다.
1. choice 명령어 활용
choice /t 5 /d n
choice /t 5 /d n > nul
/t:n,[원하는 시간(초)] 옵션은, 원하는 시간동안 기다린 후, 자동으로 "N"을 입력한다는 겁니다.
> nul 리다이렉션(redirection)을 통해서 choice 명령어가 화면에 안보이도록 합니다.
※ 실제 동작 설명 : 10초를 기다린 후 자동으로 디폴트 값인 n을 입력한 것 처럼 동작하여, errorlevel값은 2번을 리턴합니다. 도스창에서 echo %errorlevel% 을 입력해보면 [y,n] 중 N이 두번째 값에 해당하므로 2를 리턴하는 것을 알 수 있습니다.
2. ping 명령어 활용
ping 127.0.0.1 -n 10 > nul
3. timeout 명령
timeout /t [원하는 시간(초)]
사용자 키입력이 있을 때 까지, 원하는 시간 만큼 대기합니다.
timeout /t [원하는 시간(초)] /NOBREAK
NOBREAK 옵션을 주면 사용자 키 입력을 무시하고, 원하는 시간만큼 대기합니다. 단, 중단하려면 CTRL+C 키를 눌러줘야합니다.
timeout /t [원하는 시간(초)] > nul
timeout /t [원하는 시간(초)] /NOBREAK > nul
리다이렉션을 활용하여, 화면 출력(stdout, Standard Output)을 널 장치(무(無/null) 도스에서 Redirection 시에는 nul)로 보내주면, 대기한다는 메시지 없이 해당 시간 만큼 기다리게 할 수 있습니다.
timeout /t -1
참조: http://hallang.tistory.com/248 [할랑할랑...]