때때로, 리눅스에서 현재 실행중인 프로세스들을 보고 싶을 때가 있을 것이다. 이러한 프로세스 리스트를 보려면, ``ps -aux'' 라고 타이핑하면 되는데 그 결과는 다음과 같은 식으로 나온다:
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND bin 69 0.0 1.0 788 320 ? S Nov 30 0:00 /usr/sbin/rpc.portmap frampton 10273 0.0 2.1 1136 664 p0 S 14:12 0:00 -bash frampton 10744 0.0 1.1 820 360 p0 R 17:25 0:00 ps -aux frampton 10745 0.0 0.8 788 264 p0 S 17:25 0:00 more nobody 10132 0.0 1.8 1016 588 ? S 13:36 0:00 httpd nobody 10133 0.0 1.8 988 568 ? S 13:36 0:00 httpd nobody 10413 0.0 1.8 1012 580 ? S 14:56 0:00 httpd nobody 10416 0.0 1.8 1012 580 ? S 14:56 0:00 httpd nobody 10418 0.0 1.8 1012 588 ? S 14:57 0:00 httpd nobody 10488 0.0 1.7 976 556 ? S 15:34 0:00 httpd nobody 10564 0.0 1.8 988 564 ? S 16:06 0:00 httpd nobody 10600 0.0 1.8 988 564 ? S 16:15 0:00 httpd nobody 10670 0.0 1.8 988 568 ? S 16:45 0:00 httpd nobody 10704 0.0 1.7 976 552 ? S 17:03 0:00 httpd root 1 0.0 1.0 776 312 ? S Nov 30 1:13 init [3] root 2 0.0 0.0 0 0 ? SW Nov 30 0:00 (kflushd) root 3 0.0 0.0 0 0 ? SW Nov 30 0:00 (kswapd) |
리스트에는 프로세스의 소유주 (웹 서버와 같은 특별한 서비스의 경우 소유주가 "nobody" 로 되어 있다), 프로세스 고유 번호, 프로세스가 현재 사용하고 있는 CPU 시간의 점유 비율, 프로세스가 사용하고 있는 메모리의 비율, 프로세스가 무엇을 하고 있는 지에 대한 설명 그리고 그 외 관련 정보가 나온다.
어떤 프로세스에 대한 더 자세한 정보를 얻으려면 ``ps pid'' (여기서 "pid" 는 프로세스 고유 번호 - the process identification number - 이다). 위의 예와 같은 상태에서 "ps 10704" 라고 하면 다음과 같이 나올 것이다:
10704 ? S 0:00 /usr/local/etc/httpd/httpd |
이 결과는 이 특정 프로세스가 웹 서버 (아파치 웹 서버는 프로세스 리스트에 여러번 나타나게 되는데 그 이유에 대하여는 7.1절 을 참조하면 된다) 라는 것을 나타낸다.
어떤 서비스가 제대로 운영되고 있지 않다는 것을 알게되면 "kill -HUP pid" (여기서 "pid" 는 프로세스의 고유 번호로서 "ps" 명령에 의하여 나오는 프로세스 리스트에 있는 번호이다) 이라는 명령을 사용할 수 있다. 예를 들어, 인터넷 서비스 (inetd 라고 불리는 프로세스로서 우리의 예에서는 123번 프로세스이다) 가 원하는대로 동작하고 있지 않다면, ``kill -HUP 123'' (또는 더 안전하게 하고 싶다면 프로세스의 이름을 지정하는 명령인 ``killall'' 을 사용하여 ``killall -HUP inetd'' 라고 할 수도 있다) 라고 하여 프로세스를 재시작 시킬 수 있다. kill 명령에서 -HUP 옵션은 "전화를 끊음 - hang up" 을 나타낸다; 프로세스는 이를 스스로 재시작하라는 뜻으로 이해한다.
그래도 문제가 해결되지 않는다면 시스템을 내렸다가 다시 부팅하는 방법을 사용하여야 한다. (이에 대한 자세한 정보는 6.7절 을 참조하시요).
가끔은 어떤 프로세스를 잠시 중지시켰다가 나중에 계속 실행시켜야 할 때가 있다. 예를 들어, 현재 CPU 를 많이 사용하는 어떤 작업을 돌리고 있는데 동시에 IDE 기반의 CD 롬 라이터로 씨디를 구우려고 한다고 생각해보자. IDE 기반의 장치는 입출력을 위하여 CPU 에 상당히 많이 의존하므로 CPU 가 너무 바쁘다면 버퍼 처리를 제대로 할 수 없게 되고 그 결과로서 제대로 구워진 씨디가 아니라 쓸모없는 원반하나를 얻는 수가 생긴다! 다음 두개의 명령은 어떤 프로세스를 잠시 중지시키는 일과 재시작 시키는데 각기 사용된다:
kill -STOP 945 kill -CONT 945 |
레드햇에서는 프로세스를 시작시키고 중단시키는데 더 좋은 방법이 있는데 그 내용은 아래에 나오는 9.3절 에서 다루고 있다.