LINUX byDreamy postedNov 11, 2014

shell 에서 background로 명령어 수행하기

?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

+ - Up Down Comment Print
원문: http://www.thegeekstuff.com/2010/12/5-ways-to-execute-linux-command/?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+TheGeekStuff+%28The+Geek+Stuff%29

몇일전 부터 오랫동안 사용하지 않았던 유닉스 명령으로 백그라운드 실행을 할 일이 생겼다... 쉘 종료후에도 명령이 동작할 수 있는 '-nohup' 옵션이 전혀 생각 안나서 검색신을 한참 찾아 헤메던 때 마침 메일링에서 완벽한 백그라운드 명령 수행을 정리해서 보내줘서 고마웠다. ^^

1. '&' 를 붙여 백그라운드 수행
명령의 끝에 & 를 붙여주면 job의 queue에 등록되어 백그라운드에서 실행된다.
$ ./my-shell-script.sh &
예를 들어 24시간 내에 변경된 파일을 찾아 주는 백그라운드 명령은 다음과 같이 실행 할 수 있다.

# find / -ctime -1 > /tmp/changed-file-list.txt &

1.1 현재 fourground에서 실행중인 명령을 백그라운드로 보내기 Ctrl-
# find / -ctime -1 > /tmp/changed-file-list.txt
# [CTRL-Z]
[2]+ Stopped find / -ctime -1 > /tmp/changed-file-list.txt
# bg
1.2 jobs 명령으로 백그라운드 job 목록 보기
~$ jobs
[1]+ 정지됨 find / -ctime -1 > /tmp/changed-file-list.txt

1.3 fg 명령으로 백그라운드 job을 포그라운드로 불러오기

1.4 fg %[id] 명령으로 jobs 목록의 특정 백그라운드 명령을 포그라운드로 가져오기.
# jobs
[1] Running bash download-file.sh &
[2]- Running evolution &
[3]+ Done nautilus .

# fg %1
마찬가지로 kill 명령으로 background 명령을 제거할 수 도 있다.
kill %2

2. nohup 을 사용해서 백그라운드 명령 실행하기.
& 를 붙여 명령을 백그라운드로 실행후 logout을 해버리면 현재 shell에서 명령이 종료가 되는데
nohup을 사용하면 로그아웃 후에도 명령이 백그라운드로 계속 실행된다.

$ nohup ./my-shell-script.sh &

3. 종료된 세션의 명령을 다시 연결해 살리기 - screen 명령
nohup을 이용해 백그라운드를 세션 종료후에도 실행이 가능하지만, 다시 로그인을 해도 해당 세션으로 접속을
못해 명열을 다시 볼 수 없다. screen 명령은 세션을 제거 혹은 복구할 수 있는 명령이다.
참조: Screen Command Examples: Get Control of Linux / Unix Terminal

4. at 명령을 이용한 batch job
at 명령을 사용하면 알람 처럼 특정 시간에 명령을 수행하게 해준다.
$ at -f backup.sh 10 am tomorrow
참조: Understand at, atq, atrm, batch Commands using 9 Examples

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5