From : socialwebtools.info/2008/08/10/twitter-clones-and-competitors-on-the-rise/ [socialwebtools.info]
Jisko (Beta) - An open source micro-blogging service that provides instant relation by short messages (called notes) between your friends & supports many languages.
* jisko.net [jisko.net]
Rejaw (Alpha)
- A new way to communicate in real-time with friends, family, and
co-workers. You can shout messages to your followers, or whisper to
your friends. The unique thing about Rejaw is that their first desktop application is for Mac (not Windows). Rejaw Radar is a desktop application that keeps you up-to-date with the latest shouts, whispers and replies on Rejaw.
* rejaw.com [rejaw.com]
Mytalk.at (Beta) - A smaller version of a blog, limiting posts to 1000 characters
with link, photo, video & also supports many languages (like
Jisko). Mytalk.at is a place to discuss and share what is in the best
interests of you. The best thing about Mytalk.at is that it supports
Google Adsense and widget codes. (ex: Google adsense, Google analyst,
etc).
* mytalk.at [mytalk.at]
If you want to use another SNS site(Social Network Service) ,
look at this site!
각각의 프로세스들에 우선 순위를 부여하여 프로세스를 관리하고자 할 때 이용
[서식]
nice [-n 조정수치] [–adjustment=조정수치] [변수]
[주요사용 옵션]
-n adjustment,
-adjustment, : 명령의 우선권에 10 대선 조정 수치를 더한다.
–adjustment=adjustment
-h : 도움말
-v : 버전 정보
[사용법]
기본적으로 아무런 옵션 없이 nice를 사용하면 상속 받은 현재 순서의 우선권을 출력한다.
옵션으로 조정 수치를 줄 때, 이 값의 범위는 ?20~19 까지 이다.
수치가 작을수록 높은 우선 순위를 갖게 된다.
[서식]
kill [-옵션] pid
kill [-옵션] 시그널
[주요 사용 옵션]
-s 시그널 : 특별히 보낼 시그널 지정
-p : 실행중인 프로그램의 이름만을 출력
-l 시그널 : 시그널로 사용할 수 있는 시그널 이름들을 출력. 이것은 /usr/include/linux/signal.h 에서 볼 수 있음.
[사용법]
ps로 실행 중인 프로그램의 id 확인. kill로 실행 중인 프로그램 중단.
강제로 실행 중인 프로그램을 종료 시킬 때에는 옵션으로 ?9, -SIGKILL, -KILL 등은 사용하면 된다.
자주 사용되는 시그널의 의미
- SIGUP : hangup, 로그아웃 하거나 접속을 끊을 때 발생하는 시그널, 특정의 실행중인 프로그램이 이용하는 설정 파일을 변경시키고 변화된 내용을 적용할때 이용
- SIGINT : interrupt, 현재 작동 중인 프로그램의 동작을 멈출 때 사용
- SIGQUIT : quit, SIGINT와 마찬가지로 종료 키를 누를 때 커널에 의해 보내지는데 일반적인 값은 ^c. SIGQUIT는 비정상적인 종료이므로 코어파일을 생성하고 종료한다는 것이 차이이다.
- SIGKILL : kill, 무조건 해당 실행 중인 프로그램을 중지.
- SIGSEGV : segmentation violation, 메모리 액세스가 잘못 되었을 때 발생
- SIGTERM : terminate, 실행중인 프로그램에 정의되어 있는 정상적인 종료방법으로 프로그램을 끝내게 한다. Kill 명령에서 시그널을 특별히 지정하지 않으면 이 시그널을 이용하여 프로그램을 끝낸다.
프로세스라는 것은 현재 실행되고 있는 프로그램들을 가리키는 말
[서식]
ps [-옵션]
[주요 사용 옵션]
- -a : 모든 프로세스를 나열
- -c : 해당 프로세스를 유발시킨 명령어 이름을 task struct에 참조한다.
- -e : 해당 프로세스에 관련된 환경변수 정보를 함께 출력
- -f : 프로세스 간 상속관계를 트리 구조를 보여줌
- -h : 메뉴는 보여주지 않음. (PID, TTY, STAT, TIME, COMMAND 등)
- -j : 작업에 관련된 ID를 출력
- -l : j보다 자세하게 정보를 출력
- -u : 사용자 이름과 프로세스가 시작된 시간을 출력
- -x : 터미널에 종속되지 않는 프로세스들을 출력
- -n : 사용자 정보를 ID와 숫자로 표시
- -w : 출력 결과를 생략하지 않고 출력
ps + 옵션 결과가 출력될 때에 윗 부분에 나타나는 메뉴들의 뜻은 다음과 같다
- PID(Process ID) : 프로세스마다 주어지는 번호
- TTY(Tele TYpewrite) : 명령어가 실행되는 터미널의 번호
- STAT(STATe) : 실행되고 있는 프로세스 상태 (R, S, D, T, Z, W, N)
- START(START) : 프로세스가 시작된 시간
- TIME(TIME) : CPU가 사용한 시간
- USER(USER) : 사용자의 이름
- COMMAND(COMMAND) : 사용자가 실행한 명령어
- UID(User ID) : 사용자의 ID
- PGID(Parent Group ID) : 사용자 부모 프로세스의 그룹 ID
- SID(Session ID) : 세션 ID
- PRI(PRIority) : 실행하는 우선 순위에 따른 프로세스
- NI(Nice) : nice에 의한 우선 순위에 따른 프로세스
- RSS(Resident Set Size) : 프로세스가 사용하는 메모리의 크기
- SZ(SiZe) : 프로세스가 사용하는 자료와 스택의 크기
- SHRD(ShaReD) : 프로세스가 사용하는 공유 메모리
- %CPU : 프로세스가 사용하는 CPU 점유율
- %MEM : 프로세스가 사용하고 있는 메모리 점유율
- WCHAN : 프로세스가 실행하고 있는 커널 루틴
시스템에서 돌아가고 있는 프로세스들은 서로 연관성을 갖고 실행된다.
프로세스들 간의 연결 구조를 트리 형식으로 출력
[서식]
pstree [-옵션] [프로세스 ID | 사용자]
[주요 사용 옵션]
-a : 명령어에 인수를 넣어 실행했다면 명령어 인수까지 함께 보여준다
-c : 독립적인 하위 트리를 보여주지 않는다. 같은 위치에 같은 프로세스가 있을 때는 합치지 않음.
-h : 현재 프로세스와 부모 프로세스를 좀 더 두드러지게 출력
-l : 특별한 긴 줄이 있어도 그대로 보여줌
-n : PID 순서대로 정렬해서, 같은 부모 프로세스를 가진 자식 프로세스들끼리 모아 출력
-p : PID도 출력
-u : UID도 출력
-G : 프로세스 간의 관계를 보기 좋게 출력
-V : 버전 정보
이 기능으로 하나 이상의 작업을 console에서 사용할 수 있다.
Foreground : 화면에 보여주면서 실행되는 상태(입력을 받아들인다.)
Background : 화면에 보여주지 않으면서 실행되는 상태(입력을 받지 못한다)
Suspend : 메모리에 올라가 있지만 정지된 상태
Foreground로 실행하기
일반적으로 사용하는 방법이 foreground로 실행되는 것이다.
Background로 실행하기
뒤에 &를 붙이면 화면 뒤에서 실행이 된다.
이렇게 실행하면 다른 작업을 동시에 할 수 있지만
vi와 같이 입력을 받아 실행하는 프로그램은 background로 실행될 수 없다.
Foreground를 suspend로 실행하기
^Z을 누르면 실행 중이던 프로그램이 suspend된다.
Suspend된 것을 다시 foreground로 하기 위해서는 fg %<작업번호>를 사용한다.
작업번호는 jobs 명령어로 알 수 있다.
Suspend된 것을 다시 background로 하기 위해서는 bg %<작업번호> 를 사용한다.
프로세스 간의 통신 수단이 signal 이라고 할 수 있다.
하나의 프로세스가 다른 프로세스에게로 메시지를 보내기 위한 수단이다.
kill은 프로세스를 죽이는 명령이 아니라 signal 을 보내는 명령이다.
signal
일반적으로 사용되는 signal은 다음과 같다.
이름 번호 의미
HVP 1 Hangup (실행종료. 로그아웃 하거나 모뎀 접속을 끊을 때 보냄)
INT 2 Interrupt (실행종료. ^c를 쳤을 때 보내진다.)
QUIT 3 Quit (실행종료. ^8를 쳤을 때 보내진다.)
KILL 9 Kill (무조건 종료)
SEGV 11 Segmentation Violation (허가되지 않은 메모리 영역에 접근)
TERM 15 Terminate (가능한 한 정상 종료)
CONT 18 Continue (STOP나 TSTP에 의해 정지된 프로세스가 다시 실행을 계속한다.)
STOP 19 Stop (무조건적으로 그리고 즉각적으로 정지)
TSTP 20 Stop (실행을 정지 후 다시 실행을 계속하기 위해 대기. ^Z)
kill 명령의 사용법
kill <pid>
kill -<signal> <pid>
현재 존재하는 프로세스들의 실행 상태를 요약한 보고서를 만들어 준다.
ps 명령어를 파이프와 함께 사용하는 것이 유용할 때가 있다. 보통 다음과 같이 사용함으로써 httpd process가 실행 중인지 확인할 수 있다.
ps aux | grep http [return]
PS 상태에 대한 여러 가지 정보는 다음과 같다
- user(BSD) : 프로세스 소유자의 username
- uid(sysV) : 프로세스 소유자의 username
- pid : 프로세스 식별번호
- %CPU : cpu 사용 비율 추정치 (BSD)
- %mem : 메모리 사용 비율 추정치 (BSD)
- SZ : K 단위 혹은 페이지 단위의 가상 메모리 사용 가능
- RSS: 실제 메모리 사용량
- TTY : 프로세스와 연결된 터미널 포트
- STAT : 프로세스의 현재 상태
- R : 실행 중 혹은 실행될 수 있는 상태
- S : sleep
- I : idle (비활동 상태 : BSD / 중간적 상태 : sysV)
- T : 정지된 상태 (suspend)
- Z : 좀비 (zombie) 프로세스
- D : 디스크 관련 대기 상태 (BSD)
- P : 페이지 관련 대기 상태 (BSD)
- X : 메모리 확보를 위해 대기 중 (sys V)
- K : 사용 가능한 커널 프로세스 (aix)
- W : 스왑 out된 상태
- N : nice 되어진 상태
- > : 우선 순위가 인위적으로 높아진 상태
- TIME : 총 cpu 사용 시간
- COMMAND: 프로세스의 실행 명령 행
- STIME(sysV) : 프로세스가 시작된 시각 혹은 날짜
- C(sysV)/CP(BSD) : 짧은 기간 동안의 cpu 사용률
- F : 프로세스의 프래그들
- PPID : 부모 프로세스의 PID
- PRI : 실제 실행 우선 순위
- NI : nice
- WCHAN : 프로세스를 기다리고 있는 이벤트