[질문] 현재 동작중인 프로세스 다음 작업 예약하기...
글쓴이: irondog / 작성시간: 목, 2005/12/15 - 3:45오후
bash에서 작업 명령을 입력 해서 프로그램을 실행 시킵니다.
헌데 작업 시간이 생각보다 길어서 다음 일을 계속해서 자동으로 실행 하도록 해 놓고 다른 볼일을 보고 싶습니다.
작업 종료 시간이 언제인지 알 수 없기 때문에 cron이나 at은 쓰지 않는 것으로 간주하겠습니다.
작업을 순차적으로 실행하도록 추가 할 수 없을까요?
동작중인 프로세스를 stop해놓고 뭔가 할 수 있는게 없지 않을까 싶은데 모르겠네요. --;;
남아도는 sparc(Enterprise 420R 2way)에 gentoo를 설치 하는 과정에서 궁금증이 생겨났습니다. 기본 설치하는데 20시간은 걸린것 같고 gnome 넣는데까지 족히 50 시간 이상 걸린것 같네요. ㅡㅜ
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 283바이트 |
Forums:
[code:1]$ do_something && do_nex
$ do_something && do_next_job && another_job
What do you want to eat?
[quote="whitekid"][code:1]$ do_something
이건 처음부터 작업을 순서대로 하라고 명령한 것 아닌가요??
앞에서 정상적으로 종료하면 그다음을 수행하고~ 뭐 이런걸로 알고 있는데...
제가 필요한 것은 조금 틀리거든요. 이미 작업이 수행 중인데... 생각보다 오래 걸려서 동작 중인 작업이 끝난 이후에 할 다음 작업들을 예약 하고 싶다는 것이죠.
아.. 문제를 잘못 이해했군요...그런 케이스라면 wait 명령을..
아.. 문제를 잘못 이해했군요...
그런 케이스라면 wait 명령을...
What do you want to eat?
아하~ wait이 있었군요. 대단히 감사합니다. :D
아하~ wait이 있었군요. 대단히 감사합니다. :D
Ctrl-z로 빠져나와서,fg; something
Ctrl-z로 빠져나와서,
fg; something
--
Life is short. damn short...
fg 명령을 그렇게도 이용 할 수 있군요. ㅎㅎ 단순하고 좋은 방법이네요
fg 명령을 그렇게도 이용 할 수 있군요. ㅎㅎ 단순하고 좋은 방법이네요.
내친김에 질문하나 더 하겠습니다.
이번에는 노트북에서 서버에 접속해서 엄청나게 오래 걸리는 작업을 시켜놓았다고 가정하겠습니다. 헌데 급히 노트북을 들고 나가야 할일이 생긴거죠.
shell을 끝내고 접속을 끝내자니 child로 수행중인 작업도 같이 종료가 될것이고, 지금까지 한 작업을 다시 돌아와서 실행 시키자니 지금까지 한 시간이 너무 아깝습니다.
parent 프로세스의 pid를 바꾸면 쉘을 종료 시켜도 가능 할것도 같은데... 어떤 명령이 있을까요?
아니면 세션처럼 shell을 남겨두고 나중에 다시 접속 할 수 있는 방법이 있을까요?
screen
screen을 사용하세요 :)
- Tirin.
Re: screen
오오.. irc zombie들을 양산해낸다는 그 전설의 비기!
--->
데비안 & 우분투로 대동단결!
글쎄요.
실행중 터미널 닫아도 실행 중 프로세스는 돌아가게 할 때
ctrl+z
bg
exit
이거 안 되나요?
Re: 글쎄요.
csh 외에는 원하시는대로 작동을 안합니다. 쉘이 종료되는 순간에 모든 차일드를 죽이기 때문에 하던 작업이 종료되어 버립니다. csh은 예외구요..
csh 외에 다른 쉘에서 저 작업을 하려면 nohup, screen 등의 프로그램을 사용해야 합니다.
======================
BLOG : http://superkkt.com
Re: 글쎄요.
정확히는 '로그인 쉘이 종료되는 순간' 인것 같습니다.
X 윈도에서는 터미널을 닫아도 괜찮더군요. X 윈도에 떠 있는 터미널들은 로그인 쉘이 아니니까요.
저도 screen 추천 ;-)
$ screen -r
만 알아두고 있어도 굉장히 유용하죠.
그 외에도 창 분할이나 상태표시줄 표시 같은것도 가능합니다. man screen 을 보면, "Screen is a full-screen window manager that multiplexes a physical terminal between several processes (typically interactive shells)." 라고 나와 있죠. :lol:
제 screen 설정 파일을 첨부합니다. ~/.screenrc 로 저장하여 사용하실 수 있습니다.
----
블로그 / 위키 / 리눅스 스크린샷 갤러리
Re: 글쎄요.
ssh로 로긴했을 땐 이 방법도 작동하더군요. 로컬터미널은 잘 모르겠네요.
아 그리고 screen은 처음 분이 질문하신 문제는 해결하지 못하는 것 아닌가요? 질문하신 분은 이미 foreground로 돌려버린 프로세스를 말씀하시는 것 같은데요.
screen을..
쉘처럼 무조건 실행하는 분도 있더군요.
.bashrc 에 넣었던가..
- Tirin.
댓글 달기