Previous: detached job Up: Job 의 제어
Message from Talk_Daemon@baram at 5:52 ...
talk: connection requested by mylove@baram.kaist.ac.kr.
talk: respond with: talk mylove@baram.kaist.ac.kr
가장 간단한 방법은 작업 중인 화일을 저장하고, vi 를 끝낸 후에,
talk 를 하면 된다. 하지만, 번번이 이렇게 해야만 하는가 ?
C Shell 에는 이것보다도 좋은 방법이 있다. 당신이 위와
같은 메세지를 받았을 때에 할 일은 ^Z 를 누르는 것이다.
이것은 job 을 suspend 시킬 것이다.
다음과 같은 메세지가 나올 것이다.
Stopped
%
이것은 vi process 가 suspend 된 것을 나타낸다. 그런 후에
당신은 다음과 같이 talk 명령어를 실행할 수 있다.
% talk mylove@baram
그럼, talk 가 끝이 난 후에, vi 로 에디팅하던 것으로
어떻게 돌아갈 것인가? 답은 fg 명령어를 이용하는 것이다.
% fg
C Shell 은 이제 수행할 명령어를 출력할 것이다.
이제 suspended 된 상태에 관한 것이 나왔다. 이 susepended
된 상태는 작업을 중지하는 것이다. 즉, 작업이 수행되지 않는다.
그럼 작업이 중지된 것을 어떻게 수행하게 할 것인가 ?
조금 전에 말을 한 fg 명령어는 suspend 된 job 을 foreground 로 실행할 것이다. fg 명령어는 job number 를 인수로 받는다.
% fg %2
위의 명령어는 job numer 이 2 인 process 를 foreground
로 실행할 것이다.그리고, bg 명령어는 suspend 된 작업을 background 로 실행을 할 것이다.
만약 당신이 ftp 를 foreground 로 실행하고 있고, 마지막으로 굉장히 큰 화일들을 받아야 된다고 하자. 그럼, 화일을 받는 명령을 수행한 후에, ^Z 를 누른다. 그러면, ftp process 는 suspend 될 것이다. 그런 후에, bg 명령을 수행하면, ftp process 는 background 로 실행이 될 것이다. 즉, 계속 화일을 받게 되는 것이다. 그러면, 당신은 logout 을 할 수도 있고, 다른 작업을 할 수도 있다. 다음은 이러한 시나리오의 예이다.
% ftp ara
...
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
archie
sugang_doc.tar.Z
big_size_file
226 Transfer complete.
41 bytes received in 0.016 seconds (2.5 Kbytes/s)
ftp> get big_size_file
200 PORT command successful.
150 Opening ASCII mode data connection for big_size_file (13 bytes).
^Z
Stopped
% bg
[1] ftp ara &
% jobs
[1] + Running ftp ara
% logout
만약 당신이 suspend 된 process 가 있음에도 불구하고,
logout 을 하려고 한다면, 다음과 같은 메세지가 나올 것이다.
물론 위의 시나리오에서는 아래의 메세지가 나오지 않는다.
There are stopped jobs.
즉, suspend 된 process 가 있는 상태에서는 logout 을
할 수가 없다. 표 2 는 Job 제어에 관계된 명령들의 summary 이다.
