일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Algorithm
- Android
- eclipse35
- 코스피
- adb
- java
- ubuntu
- KOSPI
- 도서
- conemu
- 기술사
- UX
- Linux
- IT 키워드
- 주식
- 알고리즘
- 작성중
- LDAP
- unix
- Audacity
- uml example
- 태터수정
- Eclipse
- IPTV
- 보안
- 공매도
- 우분투
- 안드로이드
- Qmail
Archives
- Today
- Total
Do diffence
[Unix] shell 에서 background 명령 수행 요약 본문
원문: 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에 등록되어 백그라운드에서 실행된다.
몇일전 부터 오랫동안 사용하지 않았던 유닉스 명령으로 백그라운드 실행을 할 일이 생겼다... 쉘 종료후에도 명령이 동작할 수 있는 '-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.txt1.2 jobs 명령으로 백그라운드 job 목록 보기
# [CTRL-Z]
[2]+ Stopped find / -ctime -1 > /tmp/changed-file-list.txt
# bg~$ jobs
[1]+ 정지됨 find / -ctime -1 > /tmp/changed-file-list.txt
1.3 fg 명령으로 백그라운드 job을 포그라운드로 불러오기
1.4 fg %[id] 명령으로 jobs 목록의 특정 백그라운드 명령을 포그라운드로 가져오기.
# jobs마찬가지로 kill 명령으로 background 명령을 제거할 수 도 있다.
[1] Running bash download-file.sh &
[2]- Running evolution &
[3]+ Done nautilus .
# fg %1
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
참조: http://www.thegeekstuff.com/2010/05/unix-background-job/