ROKO
[Linux] SSH 종료 이후에도 process 실행 본문
728x90
인턴 생활하면서 실수나 혹은 서버에러로 서버와 ssh 연결이 끊어질때 실행시킨 프로세스가 중단되어 다시 학습시켜야 하는 과정이 필요했다. 물론 Check point 설정을 해놓으면 몹시 좋을 것이다. 하지만 인턴서버는 총 120Giga 메모리로 10명 남짓이 사용중이며 관리 권한이 꼬이면서 내부 temp 파일을 정리하지 못해. 불필요한 메모리 사용을 지양해 달라는 얘기를 들었다.
그렇다면 이 상황에서 그나마 나은 선택이 무엇일까?
메모리 부족으로 인한 메모리 오버플로우는 해결할 수 없다. ssh 끊김 이후에도 프로세스 실행이 계속된다면 좀 더 리스크를 관리하기 쉽고 다른업무를 보기도 편하지 않을까?
해결 방법으로 아래와 같은 방법이 있다.
- Back ground 실행
# command 뒤에 &를 입력하면 bg로 프로세스가 옮겨진다.
<command> &
- disown
# 터미널 작업 리스트에서 해당 프로세스를 제거함으로써 ssh 종료에도 영향을 받지 않게함.
disown
bg (Back ground) 실행 후 jobs -l 을 실행하면 현재 터미널에서 실행중인 프로세스들이 출력된다.
disown 이후 jobs -l 을 실행하면 작업리스트에서 사라진것을 확인 할 수 있다.
- 만약 여러 프로세스를 bg로 돌린경우 %<process index> 를 통해 실행해주면 된다.
# ex [1]proc 을 disown 할 경우
disown %1
- fg (fore ground)로 가져오고 싶은 경우
# proc 1개 일때
fg
# proc 여러개 일때
fg %<process index>
TMUX
원래는 tmux를 사용하려 하였다. bash,zsh shell 기본 package가 아닌 따로 설치를 진행해주어야 하는 package이다.
linux install
# sudo -> super 관리자 모드, apt-get -> advanced package tool 약자로 linux, ubuntu debian 계열 설치 툴
sudo apt-get tmux
나는 linux sudo 관리 권한이 없을 뿐더라 권한 관리가 꼬인 상태여서 사용할 수 없었다. \(\rightarrow\) 서버 담당 박사과정 선배들이 욕을 하며 골머리를 앓는 중이다.
tmux 에 대해 알아보기 [link]
nohup
다른 해결 방법으로 nohup 명령어도 추천하고 있다.
# 기본 사용
nohup <command> &
# 표준 출력, 에러 저장
nohup <command> 1>"stdout" 2>"stderr"
# log 파일 안남기기
nohup <command> 1>/dev/null 2>&1 &
728x90
'Develop' 카테고리의 다른 글
Developer Track (0) | 2023.02.23 |
---|---|
[Linux] GPU monitoring (0) | 2023.02.19 |
[Linux] htop (0) | 2023.02.09 |
MemoryError: Unable to allocate 13.9 MiB for an array with shape (24, 276, 276) and data type float64 (0) | 2023.02.08 |
Comments