본문 바로가기

Dev/Dev:: Linux

[Day006] Linux 6일차 - 프로그램 실행 및 프로세스 관리

● 프로그램 실행 방법


  1. foreground 실행

    ]# 명령

    - 단일 프로그램 실행 => 해당 명령이 종료되어야만 다른 명령 수행

    - CPU에 의해 우선 처리 순위를 부여 받는다.


  2. background 실행  =>  숨어서 실행하는 프로그램

    ]# 명령 &

    - 다중 프로그램 실행  => 명령을 여러 개 실행할 수 있다.

    - 서비스 프로그램(데몬)을 실행하는 방법


  3. 현재 실행중인 프로그램(명령) 확인

    ]# jobs

    [번호]     상태      명령


    ex) ]# yes > /dev/null &     => background 실행

        ]# yes > /dev/null & 

        ]# yes > /dev/null & 

        ]# yes > /dev/null & 


        ]# yes > /dev/null      => foreground 실행

        ^z    =>  실행 중지


        ]# jobs

        [1]   Running                 yes > /dev/null &

        [2]   Running                 yes > /dev/null &

        [3]   Running                 yes > /dev/null &

        [4]-  Running                 yes > /dev/null &

        [5]+  Stopped                 yes > /dev/null

  


4. 실행방법 변경


    형식) ]# fg Job번호    =>  foreground 실행 변경

        

          ]# bg Job번호    =>  background 실행 변경


     ex)  ]# bg 5    =>  Job 5 : background 전환

          [5]+ yes > /dev/null &

          

 ]# jobs

 [1]   Running                 yes > /dev/null &

 [2]   Running                 yes > /dev/null &

 [3]   Running                 yes > /dev/null &

 [4]-  Running                 yes > /dev/null &

 [5]+  Running                 yes > /dev/null &


          ]# fg 1

          yes > /dev/null

          ^c    =>  명령 실행 취소

      


● 프로세스 관리  =>  메모리 관리


  - 프로세스 : 프로그램을 실행하여 메모리에 로드되어 CPU에 처리되기 위한 데이타


  - 프로세스 관리 : 불필요한 프로그램이 실행되어 메모리를 차지하고 있는 것을 삭제하여 관리 


  - 메모리 정보 확인

    ]# free


  - 프로세스 확인

    ]# ps -xa   


    PID TTY      STAT   TIME COMMAND

    ...


    PID : 프로세스를 표시하는 고유번호


    TTY : 실행 단말기

   

    STAT : 프로세스 상태

        S : 대기 상태 - CPU가 사용할 수 있는 정상적인 상태

        R : 실행 상태 - CPU가 사용하기 있는 상태 

        D : 입출력 대기 상태 - 입출력 장치의 오류에 의해 발생(비정상)

        T : 중지 상태 - 프로그램 중지 상태(비정상)

        Z : 좀비 상태 - 비활성화된 프로그램의 상태(비정상)

    TIME : CPU가 사용한 시간

    COMMAND : 명령 



    ]# ps -xf   => 프로세스를 계층적 구조로 확인(COMMAND에 표시)  



    ]# ps -ef   => 프로세스를 계층적 구조로 확인(PPID : 부모 PID)  

  


  ]# pstree   => 프로세스를 계층적 구조로 확인(Tree 형식으로 확인)


    ]# ps -aux  => 프로세스를 실행한 계정 정보 확인 


    ]# top    =>  프로세스 정보를 실시간 확인 : 종료는 q를 누른다.




  - 프로세스 삭제


    ]# kill -9 pid번호         



    ]# killall  명령