소개
리눅스 서버처럼 다른 컴퓨터가 당신은 잘 알고 있을 수 있습니다,으로 응용 프로그램을 실행합니다. 컴퓨터에,이들은”프로세스”로 간주됩니다.
리눅스를 처리합니다 낮은 수준의 장면 관리 프로세스에서의 수명 주기,당신은 방법이 필요한 상호 작용하는 운영 체제와 관리 하에서 더 높은 수준입니다.
이 가이드에서는 프로세스 관리의 몇 가지 간단한 측면에 대해 설명합니다. 리눅스는이 목적을 위해 도구의 풍부한 컬렉션을 제공합니다.,
우리는 우분투 12.04VPS 에서 이러한 아이디어를 탐구 할 것이지만,현대의 리눅스 배포판은 비슷한 방식으로 작동 할 것입니다.
를 보는 방법을 실행하는 프로세스에서의 리눅
위
을 찾을 수 있는 가장 쉬운 방법은 무엇인 프로세스에서 실행되는 서버가 실행하는top
명령:
top
상단의 덩어리 정보 시스템 등의 통계 시스템 부하의 총수는 작업입니다.
1 개의 실행중인 프로세스가 있고 55 개의 프로세스가 잠자는 것을 쉽게 볼 수 있습니다(일명 유휴/CPU 리소스를 사용하지 않음).,
하단 부분에는 실행중인 프로세스와 사용 통계가 있습니다.
htop
개선된 버전의top
라는htop
,에서 사용할 수 있소. 으로 설치가 이 명령:
sudo apt-get install htop
경우에 우리는 실행하는htop
명령을 우리가 볼 수 있다는 더 많은 사용자 친화적 인 디스플레이:
htop
에 대해 자세히 알아볼 수 있습 방법을 사용하여 상단과 htop 니다 여기에.,
사용하는 방법 ps 목록 프로세스
모두top
및htop
을 제공하는 좋은 인터페이스를 보 프로세스를 실행하는 유사한 그래픽 작업 관리자입니다.그러나 이러한 도구가 항상 모든 시나리오를 적절하게 커버 할만큼 유연하지는 않습니다. ps
라는 강력한 명령이 종종 이러한 문제에 대한 해답입니다.,
때라고 없이 인수를 출력할 수 있는 조금 부족의 광택:
ps
PID TTY TIME CMD 1017 pts/0 00:00:00 bash 1262 pts/0 00:00:00 ps
이 출력하여 모든 프로세스의 관련된 현재 사용자 및 터미널 세션이 있습니다. 이것은 감지기 때문에 우리는 실행하는bash
및ps
이 단말기와 연결됩니다.,
을 얻을 더 완벽한 사진의 프로세스 이 시스템에서,우리는 실행할 수 있습니다 다음과 같다:
ps aux
이 옵션을 사용하는ps
프로세스를 표시하려면 소유에 의해 모든 사용자가(에 관계없이 자신의 터미널에 연결)사용자 친화적인 형식입니다.
무 보기 계층적 관계를 설명해,우리는 명령을 실행할 수 있습니다 이 옵션을 사용:
ps axjf
당신이 볼 수있는,프로세스kthreadd
은 다음과 같이 될 부모의ksoftirqd/0
프로세스 및 다른 사람입니다.,
프로세스 Id 에 대한 참고 사항
Linux 및 Unix 유사 시스템에서는 각 프로세스에 프로세스 ID 또는 PID 가 할당됩니다. 이것이 운영 체제가 프로세스를 식별하고 추적하는 방법입니다.
빠른 방법으로 얻기의 PID 의 프로세스와 함께pgrep
명령:
pgrep bash
1017
이것은 단순히 쿼리 프로세스 ID 반환합니다.
부팅시 생성 된 첫 번째 프로세스에서 init 이라고하면”1″의 PID 가 주어집니다.,
pgrep init
1
이 프로세스가 다음에 대한 책임을 산란 다른 모든 프로세스에 시스템입니다. 이후 프로세스에는 더 큰 PID 번호가 부여됩니다.프로세스의 부모는이를 생성 할 책임이있는 프로세스입니다. 부모 프로세스가 PPID,당신이 볼 수있는 열 머리글에서 많은 공정 관리를 포함한 응용 프로그램top
,htop
및ps
.,
어떤 통신 사용자와 운영 체제에 대한 프로세스를 포함한 번역 프로세스 사이에 이름과 Pid 중 일부 지점에서 작업입니다. 이것이 유틸리티가 PID 를 알려주는 이유입니다.
부모-자녀 관계
을 만드는 자식 프로세스에서 일어나 두 단계 fork(),을 생성하는 새로운 주소 공간에 복사한 리소스에 의해 소유 부모를 통해본을 사용할 수 있는 자식 프로세스;그리고 exec(),로드하는 실행 파일 주소 공간을 실행합니다.,
이벤트에서는 자식 프로세스는 죽기 전에 그 부모가 아이가 좀비가 될 때까지 부모에 대한 정보를 수집 또는 표시하는 커널을 필요로하지 않는다는 내용은 다음과 같습니다. 그러면 자식 프로세스의 리소스가 해제됩니다. 그러나 부모 프로세스가 자식보다 먼저 사망하면 다른 프로세스로 재 할당 할 수도 있지만 자식은 init 에 의해 채택됩니다.
Linux 에서 프로세스 신호를 보내는 방법
Linux 의 모든 프로세스가 신호에 응답합니다. 신호는 프로그램이 동작을 종료하거나 수정하도록 지시하는 os 수준의 방법입니다.,
어떻게 보내는 신호 프로세스에 PID
가장 일반적인 방법으로 전달 신호를 프로그램과 함께kill
명령입니다.
예상대로,기본 기능은 이 유틸리티의 시도를 죽이는 프로세스:
<미리>
죽<span class=”하이라이트”>PIDoftarget_process</span>>
</전>
이 보내는 용어는 신호를 처리합니다., 용어 신호는 종료하시기 바랍니다 프로세스를 알려줍니다. 이를 통해 프로그램은 정리 작업을 수행하고 원활하게 종료 할 수 있습니다.,
프로그램이 오작동하는 종료되지 않을 때 주어진 기간 신호,우리는 확대할 수 있는 신호 전달하여KILL
신호:
<미리>
kill-KILL<span class=”하이라이트”>PIDoftarget_process</span>>
</전>
이것은 특별한 신호가 전송되지 않습 프로그램입니다.,
대신 프로세스를 종료하는 운영 체제 커널에 제공됩니다. 이것은 그들에게 전송 된 신호를 무시하는 프로그램을 우회하는 데 사용됩니다.
각 신호에는 이름 대신 전달할 수있는 관련 번호가 있습니다. 예를 들어”-TERM”대신”-15″를 전달하고”-KILL”대신”-9″를 전달할 수 있습니다.
다른 목적으로 신호를 사용하는 방법
신호는 프로그램을 종료하는 데만 사용되는 것이 아닙니다. 그들은 또한 다른 행동을 수행하는데 사용될 수있다.
예를 들면,많은 데몬이 재시작할 때 그들은 주어진HUP
,또는 신호., 아파치는 이와 같이 작동하는 하나의 프로그램입니다.
<미리>
sudo kill-HUP<span class=”하이라이트”>pidofapache</span>>
</전>
위의 명령으로 아파치를 다시 설정 파일을 다시 시작 콘텐츠를 제공.,
할 수 있는 목록의 모든 신호를 보내와 함께 죽이를 입력:
kill -l
보내는 방법 프로세스에 신호 이름
지만 기존의 방법으로 보내는 신호의 사용을 통해 Pid,또한 방법의 하고 이와 함께 정기적인 프로세스 이름입니다.,
pkill
명령에 정확히 동일한 방식으로kill
지만,그 과정이 대신 이름:
pkill -9 ping
위의 명령은 해당:
kill -9 `pgrep ping`
고 싶다면 신호를 보내는 모든 인스턴스의 특정 프로세스를 사용할 수 있습killall
명령:
killall firefox
위의 명령을 보내는 용어 신호의 모든 인스턴스 firefox 컴퓨터에서 실행.,
는 방법을 조정하는 과정을 우선순위
종종,당신이 원하는 것을 조정하는 프로세스에 주어진 우선 순위는 서버 환경에서.
일부 프로세스 간주 될 수 있습니다 중요 업무에 대한 귀하의 상황을하는 동안,다른 사람이 실행될 때마다 수 있습 남은 리소스입니다.
Linux 는 niceness 라는 값을 통해 우선 순위를 제어합니다.우선 순위가 높은 작업은 리소스도 공유하지 않기 때문에 덜 좋은 것으로 간주됩니다. 반면에 우선 순위가 낮은 프로세스는 최소한의 자원 만 취한다고 주장하기 때문에 좋습니다.,
기사 시작 부분에top
를 실행했을 때”NI”라고 표시된 열이있었습니다. 이것은 좋은 가치 프로세스의:
top
좋은 값의 범위 사이에”-19/-20″(가장 높은 우선 순위)및”19/20″(가장 낮은 우선순위)에 따라 시스템입니다.,
To run a program with a certain nice value, we can use the nice
command:
<pre>
nice -n 15 <span class=”highlight”>commandtoexecute</span>
</pre>
This only works when beginning a new program.,=”9b4b74b24a”>
:
<미리>
renice0<span class=”하이라이트”>PIDtoprioritize</span>>
</전>
참고:동안 좋으로 작동하는 명령어 이름이 필요성에 의하여,renice 운영하고 호출하여 프로세스의 PID
결론
프로세스 관리는 항목에서는 때로는 어렵에 대한 새로운 사용자를 파악하기 때문에 사용되는 도구,그리고 스스로의 필요에 따른 그래픽니다.,
그러나 아이디어는 친숙하고 직관적이며 약간의 연습으로 자연스러워 질 것입니다. 프로세스는 컴퓨터 시스템으로하는 모든 일에 관여하기 때문에이를 효과적으로 제어하는 방법을 배우는 것이 필수적인 기술입니다.
<div class=”author”>By Justin Ellingwood</div>
Leave a Reply