여러 프로세스에 시그널 보내기 원하는 프로세스를 찾은 후 가장 흔히 사용하는 프로세스 제어 명령은 kill이다. kill 명령은 프로세스에 특정한 시그널을 보낸다. 데몬에 여러 스레드나 여러 자식 프로세스가 존재한다면 부모 프로세스에 시그널을 보내서 나머지 프로세스로 전달할 수도 있다. 하지만 이와 같은 방식으로 동작하지 않는 데몬과 응용 프로그램도 존재한다. 프로세스를 수작업으로 찾아내어 하나씩 죽이는 방법도 있지만 시간이 걸리고 번거롭다. 그래서 일부 유닉스 계열은 pkill이라는 명령을 제공한다. pkill은 특정한 패턴이나 조건에 만족하는 프로세스 전부에 시그널을 보낸다. 예를 들어 터미널, 프로세스 그룹, 사용자 ID, 그룹 ID를 지정하여 해당하는 프로세스 전부에 시그널을 보낼 수 있다. pk..
2. 특정 프로세스 정보 검색하기전체 프로세스 목록에서 특정 프로세스의 정보만 골라서 확인하기는 불편하다. 특정 프로세스를 바로 검색하려면 ps 명령과 grep 명령을 |(파이프)로 연결하여 이용하거나 pgrep 명령을 이용하는 방법이 있다. ps 명령을 이용해 특정 프로세스 정보 검색하기ps 명령과 grep 명령을 |로 연결하여 특정 프로세스의 정보를 검색할 수 있다.'ps -ef | grep 명령'의 형태로 연결하면 된다. pgrep 명령을 이용해 특정 프로세스 정보 검색하기pgrep 명령은 ps와 grep를 하나로 통합하여 만든 명령이라고 생각하면 된다. pgrep 명령은 기본적으로 인자로 지정한 패턴과 일치하는 프로세스를 찾아 PID를 알려주며, 옵션의 지정에 따라 검색 내용이 다양해진다.pgre..
프로세스 관리와 관련된 명령에는 현재 실행 중인 프로세스의 목록을 보는 명령, 특정 프로세스가 실행 중인지 확인하는 명령, 프로세스를 강제로 종료하는 명령이 있다. 또한 리눅스 GUI인 그놈의 '시스템 감시' 툴에서도 프로세스를 확인하고 종료할 수 있다. 각 명령의 사용법을 자세히 살펴보자. 1. 프로세스 목록 보기현재 실행 중인 프로세스의 목록을 보는 명령은 ps로, ps 명령이 출력하는 PID를 통해 프로세스의 부모-자식 관계도 확인할 수 있다. 우분투에서 ps 명령의 옵션은 다음과 같다.유닉스(SVR4) 옵션 : 묶어서 사용할 수 있고, 붙임표로 시작한다(예 : -ef)BSD 옵션 : 묶어서 사용할 수 있고, 붙임표로 시작하지 않는다(예 : aux)GNU 옵션 : 붙임표 두 개로 시작한다(예 : -..
프로세스는 현재 시스템에서 실행중인 프로그램을 뜻한다. 리눅스는 기본적으로 다중 프로세스 시스템이므로 여러 개의 프로세스가 동시에 실행된다. 리눅스의 운영에 필요한 다양한 기능을 수행하는 시스템 프로세스도 있고, 사용자가 실행한 프로그램인 사용자 프로세스도 있다. 이 절에서는 프로세스의 기본 개념을 살펴본다. 1. 프로세스의 부모-자식 관계리눅스에서 모든 프로세스는 부모 자식 관계를 가지고 있다. 필요에 따라 부모 프로세스는 자식 프로세스를 생성하고, 자식 프로세스는 또 다른 자식 프로세스를 만들 수 있다. 리눅스 시스템을 부팅할 때 스케줄러가 실행한 프로세스인 init와 kthreadd 프로세스를 제외하면 모든 프로세스는 부모 프로세스를 가지고 있다.자식 프로세스는 부모 프로세스에 의해 만들어지는 프로..
리눅스에서는 일반적인 접근 권한 외에 특별한 접근 권한을 제공한다. umask의 결과값 0022에서 맨 앞자리 숫자가 0이면 일반적인 접근 권한이지만 이 숫자가 1, 2, 4이면 특수 접근 권한이 설정된 것이다.특수 접근 권한은 다음과 같이 세 가지가 있다.SetUID : 맨 앞자리가 4SetGID : 맨 앞자리가 2스티키 비트(sticky bit) : 맨 앞자리가 1각각 어떤 특징을 가지고 있는 접근 권한인지 살펴보자. 1. SetUIDSetUID가 설정된 파일을 실행하면 해당 파일이 실행되는 동안에는 파일을 실행한 사용자의 권한이 아니라 파일 소유자의 권한으로 실행할 수 있도록 한다. SetUID가 어떻게 적용되는지 예를 통해 살펴보자. set.exe 파일을 만들고 실행 권한을 부여했다. 이제 Set..
리눅스에서는 파일이나 디렉터리를 생성할 때 기본 접근 권한이 자동적으로 설정된다. 일반 파일의 경우 소유자는 읽기와 쓰기 권한이 설정되고 그룹과 기타 사용자는 읽기 권한만 설정되며, 디렉터리의 경우 소유자는 읽기, 쓰기, 실행 권한이 설정되고 그룹과 기타 사용자는 읽기, 실행 권한만 설정된다.기본 접근 권한은 리눅스 시스템에 설정된 기본 값에 따른 것으로, 이 기본 값을 바꾸면 기본 접근 권한도 바꿀 수 있다. 1. 기본 접근 권한 확인하고 변경하기기본 접근 권한을 확인하고 설정하는 데는 umask 명령을 사용한다.umask기능 기본 접근 권한을 출력하거나 변경한다.형식 umask [옵션][마스크 값]옵션 -S : 마스크 값을 문자로 출력한다.사용 예 umask 022아무 인자 없이 umask 명령만 사..
1. 기호를 이용한 파일 접근 권한 변경기호를 이용하여 파일 접근 권한을 변경하는 기호모드는 다음과 같이 사용자 카테고리 문자, 연산자 기호, 접근권한 문자로 구성된다. chmod 사용자 카테고리 문자 연산자 기호 접근 권한 문자 파일명 기호 모드에서는 각 항목별로 사용할 수 있는 문자와 기호가 정해져 있다. 사용자 카테고리는 소유자, 그룹, 기타 사용자를 나타내는 문자로 표기되고, 연산자는 권한 부여나 제거를 나타내는 기호로 표기된다. 또한 접근 권한 기호로는 읽기, 쓰기, 실행을 타나내는 문자를 사용한다. 구분 문자/기호 의미 사용자 카테고리 문자 u 파일 소유자 g 소유자가 속한 그룹 o 기타 사용자 a 전체 사용자 연산자 기호 + 권한 부여 - 권한 제거 = 접근 권한 설정 접근 권한 문자 r 읽..
파일의 속성 중에는 접근 권한이 있다. 접근 권한은 해당 파일을 읽고 쓰고 실행할 수 있는 권한으로 사용자의 파일을 보호하는 가장 기본적인 보안 기능이라고 할 수 있다. 리눅스는 접근 권한을 부여하기 위해 사용자를 파일의 소유자, 파일이 속한 그룹, 그 외 기타 사용자의 세 카테고리로 구분하여 적용한다.사용자가 파일을 생성하면 그 파일의 소유자가 되는데, 일반적으로 사용자가 속한 기본 그룹이 파일과 관련된 그룹이 된다. 만약 상위 디렉터리에 특수한 권한이 부여되어 있으면 다른 그룹으로 지정될 수도 있다. 파일의 소속 그룹은 시스템 관리자가 명령을 이용하여 강제로 변경할 수도 있다. 그리고 소유자도 아니고 그룹에 속한 사용자도 아닌 나머지 사용자는 모두 기타 사용자가 된다.카테고리별로 접근 권한을 다르게 ..
리눅스는 기본적으로 다중 사용자 시스템이다. 따라서 여러 명의 사용자가 같은 시스템에서 작업을 하게 된다. 그렇다면 내가 만든 파일을 내가 아닌 누군가가 복사하거나 마음대로 수정하고 심지어 삭제도 할 수 있지 않을까? 물론 그럴수 있다.따라서 리눅스와 같은 다중 사용자 시스템은 이런 사태를 예방하기 위해 사용자의 파일에 마음대로 접근할 수 없도록 보안 기능을 제공한다. 리눅스도 파일에 무단으로 접근하는 것을 방지하고 보호하는 기능을 제공한다. 따라서 사용자는 자신의 파일과 디렉터리 중에서 다른 사용자가 접근해도 되는 것과 그렇지 않은 것을 구분하여 접근 권한을 제한할 수 있다.접근 권한은 파일이 가지고 있는 속성 중 하나이다. 먼저 디렉터리에 있는 파일의 목록을 보는 명령 ls의 옵션중 ls -l 명령은..
파일 복사하기파일을 복사할 때는 cp(copy) 명령을 사용한다. cp 명령으로 디렉터리도 복사할 수 있다.cp기능 파일이나 디렉터리를 복사한다.형식 cp [옵션] 파일명1/디렉터리명1 파일명2/디렉터리명2옵션 -i : 파일명 2가 존재하면 덮어쓸 것인지를 물어본다.-r : 디렉터리를 복사할 때 지정한다.사용 예 cp file1 file2 cp f1 f2 f3 dir1 cp -r dir1 dir2 두 인자가 모두 파일인 경우두 인자가 모두 파일인 경우는 파일을 다른 파일로 복사하는 것이다. 두번째 인자로 지정한 파일명이 존재하지 않는 파일인 경우에는 원본 파일을 복사하여 새로 만든다. 만약 이미 존재하는 파일이라면 원본 파일의 내용으로 덮어쓰고 원래 내용이 없어진다. 즉 , 복사 되는것이다. 두번째 인자..
- Total
- Today
- Yesterday
- 클래스
- 프로세스
- 소켓
- UML
- socket
- 파이썬
- 파일
- 티그널
- 소켓 프로그래밍
- 디렉터리
- 리눅스
- 쓰레드
- 터미널
- 스레드
- 유즈케이스
- 클라이언트
- 자료구조
- C
- 액터
- MFC
- 라즈베리파이
- 악보
- C++
- 정렬
- 데이터베이스
- Sort
- C/C++
- 안드로이드
- 티라노 시그널
- 파이썬예제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |