실행 시간이 오래 걸리는 R 스크립트를 실행해야하거나 여러 개의 R 스크립트를 실행하고 싶은 경우가 있다. 실행 시간이 오래 걸리는 프로그램을 RStudio에서 단순 실행할 경우, 불편할 뿐더러 실수로 종료하는 등의 문제가 일어날 수 있다. 또한, RStudio에서 직접 스크립트를 실행할 경우, 여러 개의 스크립트를 실행할 수 없다. (source
로 타 R 스크립트를 참조하는 경우가 아닌 문자 그대로 스크립트 여러 개를 동시에 단순 실행하는 걸 할 수 없다는 뜻이다)
이럴 때, 해결책이 바로 백그라운드에서 R을 실행하는 것이다! 이번 포스트에서는 운영체제별 백그라운드에서 R을 실행하는 방법을 정리해보자.
<참고> RStudio에서도 R 스크립트를 background job으로 실행하는 기능을 제공하고 있다. 해당 기능을 사용하고 싶은 경우에는 아래 링크를 참고하자.
RStudio User Guide - Tools - Rstudio Jobs
아래 윈도우 명령어의 경우, 모두 기본 command prompt에서 실행되어야한다. (Powershell이나 WSL 아님에 주의!)
start /B "" Rscript.exe --vanilla {R 스크립트 경로} > {실행 결과를 저장할 파일 경로} 2> {에러 로그를 저장할 파일 경로}
Desktop\test.R
)print
함수 호출 결과 등이 저장된다. 편의상 이를 로그 파일로 취급하여 저장한다. (예: Desktop\test.log
).err
이라는 확장자를 사용해서 저장한다. (예: Desktop\test.err
)tasklist /fi "imagename eq Rscript.exe"
- 위 명령어를 실행하면 Image Name이 "Rscript.exe"인 프로그램이 모두 검색된다. 이때, PID와 Mem. Usage를 자세히 살펴보자. PID의 경우, 해당 프로그램에 부여된 ID라고 이해할 수 있으며 Mem. Usage는 해당 프로그램이 메모리를 얼마나 사용하는지 알려준다.taskkill /pid <PID> /f
- 이건 비단 R 프로그램뿐만 아니라, 윈도우에서 실행중인 프로그램을 종료할 때 사용할 수 있는 명령어이다.20000
이라면 taskkill /pid 20000 /f
으로 해당 프로그램을 종료할 수 있다.(추후 추가 예정)
피드백은 언제나 환영입니다! 혹시 잘못된 부분을 발견하셨거나 궁금하신 점이 있다면 댓글창에 남겨주세요! 그럼 다음 포스트에서 또 만나요!