Previous: detached job Up: Job 의 제어

Suspended

만약 당신이 한 화일을 vi 로 에디팅을 하고 있다고 하자. 그런데, 다음과 같이 talk 메세지가 왔다면 어떻게 할 것인가 ?

    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 이다.

chitos@baram.kaist.ac.kr / SPARCS