[Bash] Background로 프로그램 돌리기
2023. 11. 1. 10:57ㆍDevelopers 공간 [Shorts]/Software Basic
728x90
반응형
<분류>
A. 수단
- OS/Platform/Tool : Linux, Kubernetes(k8s), Docker, AWS
- Package Manager : node.js, yarn, brew,
- Compiler/Transpillar : React, Nvcc, gcc/g++, Babel, Flutter
- Module Bundler : React, Webpack, Parcel
B. 언어
- C/C++, python, Javacsript, Typescript, Go-Lang, CUDA, Dart, HTML/CSS
C. 라이브러리 및 프레임워크 및 SDK
- OpenCV, OpenCL, FastAPI, PyTorch, Tensorflow, Nsight
1. What? (현상)
Server에서 작업하는 경우 작업을 돌려놓고 나서 다른 작업을 하고 싶을 때, 우리는 process를 Background로 돌려 놓고 싶게 됩니다.
어떻게 하면 좋을지 정리해보고자 합니다.
2. Why? (원인)
- X
3. How? (해결책)
3가지 방법을 정리해 보고자 합니다.
1. & 명령어
- &(background) : user의 session내에서 화면 출력만 background로 전환해 실행하는 방법입니다. 따라서 session이 끝나면 실행되고 있던 프로그램도 함께 종료됩니다.
- nohup(no hang up) : process를 현재 session과 detach해서 돌아갈 수 있도록 실행하는 명령어 입니다. 따라서 세션이 끊기 더라도 프로그램이 종료되지 않으므로, &명령어와 함께 실행한다면 유용하게 사용할 수 있습니다.
# Background로 실행하기 : nohup.out 파일 생성
nohup COMMAND &
# Background로 실행하기 : 원하는 파일 생성
nohup COMMAND > myfile.out &
[1] 3930
명령어를 실행하고 나면 위와 같이 나오는 데, 이는 PID를 의미합니다. 따라서 이를 이용해 아래와 같이 종료해 줄 수 있습니다.
kill -9 3930
2. tmux
tmux는 원래 session 안에서 여러 별도의 session을 만들어 가상 콘솔을 다중화하는데 사용할 수 있는 응용 소프트웨어입니다. 하지만 각각의 session을 가상으로 만들어 background에서 돌아가게 할 수 있다면 우리의 목적을 이룰 수 있습니다.
아래의 명령어들을 활용해 background로 동작하도록 만들 수 있을 것 같습니다.
# 새로운 session 시작하기
tmux new -s NAME
# session을 rename하기
tmux rename-session -t NAME1 NAME2
# session 리스트 확인하기
tmux ls
# 최근 session 열기
tmux a
# 특정 session 열기
tmux a -t NAME
# session을 종료하지 않고 나오는 방법
(Ctrl + b + d)
# 특정 session을 외부에서 종료하기
tmux kill-session -t NAME
3. screen
screen은 linux에 내장되어 있는 명령어로, tmux와 비슷하게 session을 자유롭게 열거나 화면분할 등 다양한 곳에 활용될 수 있습니다. 따라서 아래 명령어를 활용해 background로 동작하게 만들 수 있습니다.
# 새로운 session 시작하기
screen-S NAME
# session 리스트 확인하기
screen -ls
# 특정 session 열기
screen -r NAME
# session을 종료하지 않고 나오는 방법
(Ctrl + a + d)
728x90
반응형
'Developers 공간 [Shorts] > Software Basic' 카테고리의 다른 글
[Bash] 파일명을 활용해 작업하는 기초 명령어 (1) | 2023.11.03 |
---|---|
[Python] 프로젝트 내 패키지 import 방법 (0) | 2023.11.03 |
[Bash] 서버에서 자료 가져오기 (port, 방화벽) (0) | 2023.10.27 |
[Bash] ssh 비밀번호 없이 접근하기 (0) | 2023.10.27 |
[Bash] Windows에서 작성된 파일 개행 문자 문제 해결 (0) | 2023.10.20 |