오늘은 ssh 연결이 끊겨도 프로그램이 돌아갈 수 있도록 백그라운드에서 동작시키는 법을 알아볼 것이다.
(이 글을 작성할 때는 screen이니 tmux니 몰랐다는 것을 참고해주십쇼..)
우선 하기 전에 검색을 통해서 다양하게 찾아봤는데 `py` 파일을 실행시키는 것은 매우 단순해서 많이 나와있었는데 `ipynb` 파일을 실행시키는 방법이 없었고, 나처럼 이런 서버에 무지한 사람이 이해하기 어려운 것들이 많아서 그냥 내가 이해한 대로 설명해 보겠다.
nohup 사용법은 단순하게 0~3번은 건너뛰고 보시면 됩니다.
0. Putty 설치
기본 터미널, putty, mobaxterm, vscode 등등 아무거나 이용해도되는데 이번 글에서는 putty를 이용해서 해볼 것이다.
우선 아래 링크에서 서버 접속을 위한 putty를 설치한다.
1. 서버 인증 키 변환
서버 접속 시 인증키가 아닌 패스워드로 접속하는 분들은 해당 과정을 건너뛰어도 된다.
음 이건 우선 각자 다를 텐데 기존에 서버에 접속할 때 매번 패스워드를 이용해서 접속하는 사람도 있고 인증키로 입력하는 분들도 있을 거다.
나 같은 경우에는 대회 측에서 제공하는 `pem`확장자로 되어있는 인증키를 이용해서 접속했기 때문에 이를 사용해야 했다.
putty로 접속하기 위해서는 이 인증키의 형식이 달랐기 때문에 해당 `pem`인증키를 `ppk`형식으로 바꿔줄 것이다. \
putty를 설치하면 자동으로 putty gen이 pc에 설치된다.
- Load 클릭
- 오른쪽 아래 파일 확장자를 모든 파일로 변경
- 기존 pem 파일을 선택
- Save Private key를 누르고 원하는 경로에 저장
2. 서버 동시 접속
대회 주최측에서 개인서버를 제공해 줬는데, 동시접속이 막혀있어서 동시 제한 횟수를 늘려놨다.
1. 서버접속
2. `etc/security/limits.cof` 파일 열기
3. `maxlogins` 설정
3. 서버 접속
- putty 실행 후 좌측 메뉴에서 `Connection`->`SSH`->`Auth`->`Credential`->`Private key load` 클릭 후 1번에서 저장한 ppk파일 Browse (이 과정 역시 인증키를 입력하지 않고 패스워드를 입력하는 분은 건너뛰기)
- 좌측 메뉴에서 `Session`->`host name`에 해당 서버 접속 ip주소 (root@아이피주소 같은 형식) 입력하고 port 에는 포트번호 입력
- 해당 설정 정보를 저장하고 싶으면 오른쪽 아래의 Session에 이름을 지정하고 save 하면 나중에 putty를 켜서 해당 설정 Load 가능
4. 서버 백그라운드에서 ipynb 실행
- putty를 이용하여 서버 접속
- 실행 파일이 있는 곳으로 이동하기
- 아래 커맨드 실행시 코드가 실행되고, 실행이 종료되면 `outputname.ipynb`에 output이 찍힌채로 저장됨
nohup jupyter nbconvert --execute --to notebook 파일명.ipynb --output {outputname}.ipynb &
- `ps aux | grep jupyter` 명령어로 방금 위에서 실행한 프로세스가 정상적으로 작동하고 있는지 확인 가능
- 해당 프로세스를 종료하고 싶은 경우 `kill -9 {pid}`
5. 후기
ipynb파일말고 다른 것을 돌릴 때는 더 간단하다.!!!
감사합니다.
그냥 screen, tmux씁시다 예
참고 블로그
'알쓸신잡' 카테고리의 다른 글
아이폰으로 서버 SSH 접속 (0) | 2024.02.25 |
---|---|
Putty 설정 및 꾸미기 (0) | 2024.02.20 |
연구실 안전교육 스킵 (0) | 2024.02.14 |
리눅스 구글드라이브 파일 다운 (0) | 2024.02.09 |
wandb 사용법 (0) | 2024.02.08 |