본문 바로가기

Programming

[Linux] 쉘모드 전환에 대한 이해

안녕하세요 마푸입니다. 

이전하고 있는 블로그를 쭉보니 무려 10년전에 작성한 글이라.. 

옮기다 이런것까지 옮겨야하나... 란 자괴감(!??)이 들어 에버노트에 정리했던 보따리를 풀어보려합니다. ㅋ


프로그래밍이라 쓰고 첫글을 리눅스 사용법을 첫글로 올리게 되었네요 

대박


Linux는 사용자 UI가 command line입니다.

즉, 달랑 줄 하나를 던저주고 작업해 라고 하는거지요 

(물런 xwindow 같은 것도 있지만, linux로 호스팅하는 장비에는 xwindow를 설치 하지 않습니다. 아무래도 리소스 문제 때문이겠지요)


그런데 윈도우 같은 경우에는 Task Manager가 여러 Process를 주기적으로 읽어서 사용자로 하여금 멀티테스킹으로 동작하도록 착각 하게 해줍니다. 

리눅스에서 작업을 하다보면 이렇게 동시에 여러 작업을 돌리고 싶을 때가 있지요 


이를 해결하기위해서 '쉘보드 전환'이라고 하는 걸 이용하면 쉽게 해결 할 수 있지요 

아래는 쉘모드 전환에 대해서 예전에 작성한 자료입니다. 


목차
1. job 
2. Background 
3. jobs을 Background로 전환하기 

-- 참고사항

Foreground : 현재 커멘트 모드로 활성화되어있는 job
Background : 커멘트라인의 프로세스(or 명령어)를 상시 job으로 변경합니다. (Daemon(process) 형태로 동작) ->  로그아웃해도 죽지 않습니다.
job : Foregroud 작업을 멈춰져 있는 프로세스(or 명령어) -> 로그아웃시 없어집니다.

1. job 

작업이 빨리 끝날 것이라고 예상하고 실행했지만 엉겁의 시간이 지나도 끝나지 않을 때,  현재 작업은 놔둔 상태로 다른 작업을 실행하고 싶을 때
(* 작업이 stopped로 전환됩니다. 또한, 세션이 종료 되었을때 job은 모두 삭제됩니다. )


Ctrl + z


현재 작업 상태 보기

'jobs' 라는 명령어는 background 작업들과 상태들을 나타내 줍니다.

jobs


여러개의 저장된 job이 있을경우 지정된 foreground로 변경하기  

fg %jobID


2. Background 

접속을 종료해도 동작하게 하고 싶다면?
백그라운드에서 상주하게 하면됩니다. (세션을 종료해도 상주된 프로세스는 종료되지 않습니다.)

명령어 + &

3. jobs을 Background로 전환하기 


jobs으로 멈춰있는 프로세스를 백그라운드로 전환할 수 있습니다. 

bg %JobID


반응형