티스토리 뷰

728x90
반응형

3. 프로세스 관리

프로세스의 제어

프로세스 우선순위

  • 명령행에서 'ps -l'
  • PRI와 BNI가 있고, 이 두 항목이 프로세스의 우선순위와 연관
  • PRI는 운영체제에서 참고하는 우선순위 값으로 낮은 값일수록 우선순위가 높다. 인위적인 조작이 되지 않고, 시스템 상황에 따라 적절히 부여된다.
  • NI 값은 root나 사용자가 조작하는 우선순위 값으로 -20부터 19까지 설정 가능하다. 이 값 역시 낮은 값일수록 우선순위가 높고, root만이 값을 낮출 수 있다.(관련 명령어로 nice, renice)

프로세스와 /proc 디렉터리

/proc 개요

  • 가상 파일 시스템.
  • 동작중인 프로세스 상태 정보 시스템 및 하드웨어 정보 확인
  • ps 명령시 이 디렉터리 사용
  • 프로세스 생성시 이 디렉터리에 PID와 동일한 서브 디렉터리가 생성. 그 안에 정보가 저장.

/proc 디렉터리의 주요 정보 파일 및 디렉터리

  • acpi : 전원 관련 정보가 있는 디렉터리
  • bus(디렉터리)
  • cmdline : 부팅 시에 실행되는 커널 관련 옵션에 대한 정보
  • cpuinfo
  • devices : 현재 커널에 설정된 디바이스 드라이버의 리스트 정보
  • dma : 시스템에서 사용 중인 DMA 정보
  • filesystems : 커널에 설정된 파일 시스템의 리스트 정보
  • interrupts : 시스템에서 사용 중인 인터럽트 정보
  • iomem : 메모리 번지별로 할당된 리스트 정보
  • ioports : 시스템에서 사용중인 I/O 주소
  • kcore : 시스템에 장착된 물리적 메모리의 이미지
  • loadavg : 최근 1, 5, 15분 동안 의 평균 부하율을 기록
  • meminfo : 물리적 메모리 및 스왑 메모리 정보
  • misc : 기타 장치에 대한 정보
  • mounts : 시스템에 마운트된 정보가 기록
  • net : Network 관련 정보 파일이 있는 디렉터리
  • partitions : 현재 활성화된 파티션 정보를 기록
  • scsi : 디렉터리
  • swaps : 스왑 파티션 관련 정보
  • sys : 커널과 관련된 정보가 있는 디렉터리 sysctl 명령으로 제어
  • sysvipc : SysV IPC 자원 정보인 Messages Queues, Semaphores, Shared Momory 정보가 있는 디렉터리
  • uptime : 시스템 가동 시간에 대한 정보를 기록
  • version : 커널 버전 정보
  • mdstat : RAID 사용시에 관련 정보

프로세스 스케줄링

스케줄링 이란 특정한 시간에 특정한 작업을 수행하게 하는 것. at은 한번만 실행시 사용, cron은 주기적으로 프로세스를 실행시 사용.

at

  • 보통 한번 실행되는 경우에 사용
  • atd 데몬에 의하여 실행
  • 지정한 작업은 큐에 저장
  • 저장한 작업들은 /var/spool/at/ 디렉터리 아래 파일로 저장
  • Ctrl + d 누르면 해당 작업 예약

[사용법]
$ at [option] 시간

옵션

  • -q 큐 이름 : 작업의 대기 큐 지정
  • -c 작업 : 작업 정보 출력
  • -d : 예약한 작업 삭제
  • -l : 큐에 있는 작업 출력
  • -m : 실행한 결과 메일
  • -f : 지정한 파일로부터 작업 읽어옴

atq : 큐에 저장된 작업을 보여주는 명령. 'at -l'과 같음.
atrm : 예약된 작업을 취소할 때 사용. 'at -d'와 같음.

at 사용자 제한

  • /etc/at.allow 파일이 존재하는 경우에는 /etc/at.deny 파일 존재 유무에 상관없이 /etc/at.allow 파일에 등록된 사용자만 가능.
  • /etc/at.deny 파일만 존재하는 경우에는 /etc/at.deny 파일에 등록된 사용자만 사용 불가능
  • root만 사용가능

cron

7개의 필드로 구성

  • munute : 0~59
  • hour : 0~23
  • day of month : 1~31
  • month : 1~12
  • day of week : 0, 7 일요일. 1~6 월~토. 아니면 직접 sun, mon……
  • user-name : 보통 생략
  • command

관련 명령어 : crontab

  • '/var/spool/cron/사용자아이디' 파일로 저장.

[사용법]
$ crontab [option] 파일명

옵션

  • -l : 설정된 내용 출력
  • -e : 작성, 수정
  • -r : 저장된 파일 삭제
  • -u : root가 다른 사용자 crontab 다룰 때

cron 사용자 제한
/etc/cron.allow, /etc/cron.deny. at과 같은 원리로 제한이 동작.

프로세스 관련 명령어

PS

동작 중인 프로세스의 상태를 출력. System V, BSD, GNU에 따라 결과가 다르게 나타남. System V 계열은 -를 사용. BSD 계열은 - 사용 x. GNU 에서는 --를 사용.

[사용법]
$ ps [option]

옵션

  • a : 터미널과 연관된 프로세스를 출력(BSD). x와 연게해서 씀.
  • u : 프로세스의 소유자를 기준으로 출력
  • x : 데몬 프로세스처럼 터미널에 종속되지 않는 프로세스를 출력. a와 연계해서 씀
  • l : 프로세스의 정보를 길게 보여주는 옵션 우선순위와 관련된 PRI와 NI 값을 확인
  • e : 해당 프로세스에 관련된 환경 변수 정보를 함께 출력
  • f : 프로세스간의 상속관계를 트리 구조로 보여줌
  • p : 특정 PID를 지정할 때 사용(BSD)
  • -A : 모든 프로세스를 출력(-e, System V)
  • -a : 세션 리더를 제외하고 터미널에 종속되지 않은 모든 프로세스를 출력
  • -f : 유닉스 스타일로 출력. PID, UID, PPID 표시.
  • -C 프로세스명 : 지정한 프로세스 보여줌
  • -o 값 : 출력 포맷 지정. pid, tty, time, cmd 등
  • -p : 특정 PID 지정 (SysV)
  • -u : 특정 사용자의 프로세스 정보 확인

ps 주요 출력 항목

  • VSZ : 가상 메모리 사용량
  • RSS : 실제 메모리 사용량
  • TIME : 총 CPU 사용 시간
  • C, CP : 짧은 기간 동안의 CPU 사용률
  • F : 프로세스 플래스
  • PRI : 실행 우선순위
  • NI : nice 우선순위 번호

pstree

프로세스의 상태를 트리 구조로 출력

[사용법]
$ pstree [option]

옵션

  • -a : 각 프로세스의 명령행 인자까지 보여줌
  • -h : 현재 프로세스와 그것의 조상 프로세스르 하이라이트로 강조
  • -n : 프로세스 이름 대신 PID로 정렬해서
  • -P : PID도 같이 보여줌

top

동작중인 프로세스의 상태를 실시간으로 화면에 출력. CPU, 메모리, 부하 상태 확인. 실행 상태에서 다양한 명령 입력.

[사용법]
$ top [option]

옵션

  • -d 갱신 시간
  • -p : 특정 PID 값을 갖는 프로세스를 모니터링

kill

프로세스에 특정한 시그널을 보내는 명령. 옵션 없이 실행시 프로세스에 종료 신호(15, TERN, SIGTERM)을 보냄.

[사용법]
$ kill [option] [signal] PID or %job_number

옴션

  • -l : 시그널의 종류
  • -s signal : 시그널의 이름을 지정

killall

같은 데몬의 여러 프로세스를 한 번에 종료시킬 때 사용하는 명령 . 프로세스명을 사용.

[사용법]
$ killall [option] 프로세스명

옵션

  • -l
  • -w : 시그널을 받은 프로세스들이 종료될 때까지 기다림
  • -v : 시그널이 전송된 결과를 출력
  • -s signal
  • -u 사용자명 : 특정 사용자의 프로세스를 지정시에 사용.

jobs

백그라운드로 실행중인 프로세스나 현재 중지된 프로세스의 목록을 출력해 주는 명령

[사용법]
$ jobs [option]

옵션

  • -l : 프로세스 번호를 추가로 출력

fg

백그라운드 프로세스를 포어그라운드 프로세스로 전환

[사용법]
$ fg [job_number or %job_number]

bg

포어그라운드 프로세스를 백그라운드 프로세스로 전환하는 명령. 포어그라운드로 실행중인 프로세스에 Ctrl + z를 눌러 작업을 일시 중지시킨 후에 bg 명령을 사용해서 백그라운드로 전환

nice

프로세스의 우선순위를 변경하는 명령으로 NI 값을 설정할 때 사용. 프로세스 기본 NI는 0. 지정 가능한 값의 범위는 -20 ~ 10. 값이 작을수록 우선순위 높음. 일반 사용자는 NI 값을 증가만 가능하고, root만 낮출 수 있음.

[사용법]
$ nice [option] 프로세스명

옵션

  • -n 값, -값, --adjustment=값 : NI 값 수정. 지정 x, 기본 10.

renice

실행중인 프로세의 우선순위를 변경할 때 사용. PID, username, GID 이용. renice는 기존의 NI 값에 상관없이 지정한 NI 값이 바로 설정. 낮추는건 root만 됨.

[사용법]
$ renice [option] NI 값 PID

옵션

  • -p : PID
  • -u : username
  • -g : GID

nohup

사용자가 로그아웃하거나 작업 중인 터미널 창이 닫혀도 실행중인 프로세스를 백그라운드 프로세스로 작업될 수 있도록 해주는 명령. 표준 출력, 에러는 'nohup.out' 파일을 생성하여 기록. 사용자가 명령행 뒤에 &를 명시해야 백그라운드로 돌아감.

[사용법]
$ nohup 명령

pgrep

프로세스 이름 기반으로 검색하는 명령으로 PID 값을 출력.

[사용법]
$ pgrep [option] pattern

옵션

  • -u : 특정 사용자가 실행시킨 프로세스 PID 출력
  • -U : 특정 UID를 갖는 사용자가 실행시킨 프로세스 PID 출력
  • -g : 특정 그룹이 실행시킨 프로세스 PID 출력
  • -G : 특정 GID를 갖는 그룹이 실행시킨 프로세스의 PID를 출력
  • -t : 특정 터미널에 실행 중인 프로세스의 PID 출력

pkill

프로세스명을 사용해서 특정 프로세스에 시그널을 보내는 명령. 기본 시그널은 15 TERM.

[사용법]
$ pkill [option] pattern

옵션

  • pgrep와 같다.

4. 소프트웨어 설치 및 관리

패키지를 통한 소프트웨어 설치

프로그램 설치 개요

  • c언어로 된 소스 파일은 tar로 묶은 후에 압축하여 배포
  • 계층적인 데렉터리 구조로 만들고, 소스 컴파일을 위한 Makefile과 관련 문서들을 포함시킴
  • 압축을 풀고, 데렉터리 이동 후 configure, make, make install의 작업을 거쳐야 하는데 초보자에게 쉬운 방법이 아님.
  • 따라서 리눅스 배포판에서는 쉬운 프로그램의 설치, 삭제, 관리 등을 위해 독자적인 패키지 관리기법을 만듬. 레드햇의 RPM, 데비안의 dpkg, 수세의 YaST 등이 있음.

배포판별 패키지 관리 기법

  • RPM : yum
  • Dpkg : apt-get
  • YaST : zypper

RPM(Red Hat Package Manager)

배포되는 rpm 파일의 형식

  • 패키지 이름-버전-릴리즈-아키텍처.rpm

rpm 사용법

[사용법]
$ rpm [option] 패키지_파일명

설치 및 갱신 모드

옵션

  • -i : 새로운 패키지설치. 이전 버전의 같은 패키지 존재시 설치가 안됨(--install)
  • -U : 패키지 업그레이드
  • -F : 이전 버전이 설치되어 있는 경우에만 설치
  • -v : 메시지를 자세히 보여줌(--verbose)
  • -h : 설치 상황을 '#'으로 표시(--hash)
  • --force : 강제 설치
  • --nodeps : 의존성 무시 설치
  • -vv : 메세지를 자세하게 볼 때
  • --test : 설치되는지 테스트 할 때
  • --rebuilddb : rpm 설치했는데 검색 안될 떄 rpm DB 업데이트 할 때

제거모드

옵션

  • -e : 설치된 패키지 삭제
  • --nodeps : 의존성을 갖는 패키지가 존재시 그것도 삭제
  • --test
  • --allmatches : 동일한 이름을 갖는 패키지 모두 다 제거

질의모드

옵션

  • -q : 질의 시 꼭 사용. 패키지 이름과 버전만 표시
  • -i : 설치된 패키지의 정보를 출력
  • -l : 패키지에서 설치한 모든 파일 정보를 출력
  • -a : 설치된 모든 패키지 목록
  • -p 패키지 파일명 :
  • -f 파일명 : 지정한 파일을 설치한 패키지 이름
  • -c : 해당 패키지의 설정 파일이나 스크립트 파일을 출력
  • -d : 해당 패키지의 문서 파일을 출력
  • -R : 어떤 패키지에 의존하는지 보여줌
  • --changelog : 특정 패키지의 바뀐 내역을 보여줌
  • --scripts : 설치 및 제거 관련 스크립트를 보여줌
  • --filesbypkg : 파일 앞에 패키지명을 붙임
  • --queryformat : 질의의 결과를 원하는 형태로 출력

검증모드

  • rpm 데이터베이스에 저장되어 있는 패키지의 메타데이터 정보를 이용하여 변경된 정보를 찾아내는 모드. 파일의 크기, 허가권, 소유권, 파일 형식 등에 대한 변경 정보를 출력.

옵션

  • -V : 검증 기본 옵션
  • -a : 모든 패키지 검사

리빌드 모드
rpm 소스파일인 .src.rpm 파일을 패키지 파일로 만드는 모드로서 rpmbuild라는 명령어를 사용

[사용법]
$ rpmbuild [option] 소스패키지

옵션

  • --rebuild

YUM(Yellowdog Updater, Modified)

rpm 기반의 시스템에서 패키지를 손쉽게 설치해주고 자동으로 업데이트를 수행하는 명령행 기반 유틸리티. 의존성 문제 자동 해결.

yum 관련 파일 및 디렉터리

  • 환경 설정 파일 : /etc/yum.conf
  • 설치 및 업데이트를 위한 저장소 : /etc/yum.repos.d
  • 작업과 관련된 정보 : /var/cache/yum/x86~/6/base
  • yum 관련 작업의 로그 : /var/log/yum.log

yum 사용법

[사용법]
$ yum [option] [command] 패키지_파일명

옵션

  • -y : 모든 질의에 yes
  • -v : 자세한 정보

command

  • list [항목] : 전체 패키지 정보 항목 값은 installed, updates. 항목 기본 값 all
  • info [패키지명]
  • check-update : 업데이트 필요한 패키지 없데이트
  • update [패키지명]
  • install [패키지명]
  • serarch [문자열..]
  • remove, erase [패키지명]
  • grouplist : 패키지 그룹에 대한 정보를 출력
  • groupinfo 패키지그룹명
  • groupupdate 패키지그룹명
  • groupinstall 패키지그룹명
  • groupremove 패키지그룹명
  • whatprovides : 특정한 파일이나 기능과 관련된 패키지 정보를 검색
  • clean [값] : yum 관련 저장된 정보 삭제할 때 사용. 설정 값에는 all, packages, rpmdb, dbcache 등이 있음
  • history

데비안 패키지 관리

데비안 패키지 관리의 개요

dpkg라는 데비안 패키지 관리 도구를 사용. .deb 형태의 파일로 배포하여 설치, 삭제 등의 관리를 함.

파일 형식 : 패키지 이름_버전-릴리즈-아키텍처.deb

데비안 패키지 관리 프로그램에는 추가로 dselect, alien이 있음. dselect는 curses 메뉴 방식의 유틸리티. alien은 다른 종류의 리눅스 패키지 형식을 상호 변환해주는 유틸리티.

dpkg

[사용법]
$ dpkg [option] 패키지명 패키지_파일명

옵션

  • -i 패키지 파일명 : 패키지 설치시(--install)
  • -R 디렉터리명 : 지정 디렉터리 안의 패키지 설치
  • -l : 설치되있는 패키지 출력(--list)
  • -c 패키지 파일명 : 패키지 파일 정보(--contents)
  • -L 패키지명 : 패키지가 설치한 파일 목록 (--listfiles)
  • -r 패키지명 : 패키지를 제거하는데, 환경 설정 파일 남겨둠(--remove)
  • -P 패키지명 : 환경 설정 파일까지 전부 제거 (--purge)
  • -S 파일명 : 해당 파일을 설치한 패키지 이름(--search)
  • -C : 완전히 설치되지 않은 패키지에 대한 검사(--audit))
  • --unpack 패키지 파일명 : 환경 설정은 하지 않고, 패키지를 풀기만 함
  • --configure 패키지명 : --unpack 옵션 풀린 패키지를 환경 설정할 때 사용.
  • -a : --configure 시 패키지명 대신에 이 옵션 사용하면 언팩된 패키지들에 대한 환경 설정을 함.
  • -s 패키지명 : 패키지 상태(--status)

apt-get

데비안 리눅스 배포판에서 패키지 관리를 쉽게 하기 위해 제공되는 명령행 기반의 유틸리티.

[사용법]
$ apt-get [option] command 패키지명

옵션

  • -y
  • --purge

소스 코드 컴파일

소스 설치법의 개요

압축 풀기, 디렉터리 이동, configure, make, make install의 5단계를 거침.

소스 설치의 주요 3단계

configure
소스 프로그램의 환경 설정을 하는 스크립트. 사용자들이 자신의 환경에 맞도록 손쉽게 수정하도록 제공되는 스크립트. 이 스크립트는 사용자 시스템에 적당한 스프트웨어 패키지가 생성되도록 Makefile을 만듬

make
소스 코드에서 실행 가능한 프로그램과 라이브러리를 자동으로 빌드하는 자동화 도구이다. 보통 configure에 의해 변경된 내용을 반영하고, 타켓과 의존성 관련 작업을 한 후에 최종적으로 실행파일을 만든다.

make install
컴파일된 실행 파일을 지정한 속성으로 지정된 디렉터리에 설치

cmake

cmake의 개요

소스 컴파일 시 사용되는 Make의 대체프로그램 멀티 플랫폼을 지원하기 위한 목적으로 등장한 오픈소스 프로젝트. cmake를 사용하는 대표적인 프로그램에는 mysql이 있음.

cmake의 특징

  • 독자적인 설정 스크립트를 이용
  • 유닉스 계열, Mac OS X 윈도우 계열 등 다양한 운영체제 지원
  • C, C++, Java, Fortran에 대해서는 자체적으로 의존 관계를 분석할 수 있음
  • SWIG, Qt, FLTK 등을 지원
  • MS Visual Studio, .Net 을 지원
  • 이클립스용 빌드 파일 생성 가능
  • 타임스탬프를 통해 파일 내용 변화 알 수 있음
  • 평행 빌드 지원
  • 크로스 컴파일
  • Dart, CTest, CPack 등을 포함

cmake를 채택한 프로젝트

KDE, MySQL, LMMS, OpenLieroX, OpenSceneGraph, VTK

tar 압축 관련 유틸리티

tar(tape archive)

여러 파일들을 하나의 파일로 묶어주는 명령. GNU tar은 옵션을 이용해서 파일로 묶거나 풀 때 압축 관련 작업을 동시에 진행 가능. 지원되는 압축 형식에는 compress(tar.Z), gzip(tar.gz), bzip2(tar.bz2), xz(tar.xz) 등이 있음.

[사용법]
$ tar [option] 파일명
'-' 기호 사용 안해도 됨. 인자 있는 옵션 여러개 사용시에는 해야됨.

옵션

  • -v : 어떤 명령을 실행할 때 대상이 되고 있는 파일들을 보여줌
  • -f 파일명 : 작업 대상이 되는 tar 파일의 이름을 지정. 기본적으로 쓰는 옵션
  • -r : 기존의 tar 파일 뒤에 파일을 추가
  • -t : tar 파일 안에 묶여 있는 파일의 목록을 출력
  • -h : 심볼릭 링크가 가리키고 있는 원본 파일을 저장
  • -C : 디렉터리를 변경할 때 사용
  • -p : 파일이 생성되었을 때의 권한을 그대로 유지
  • -Z : compress 관련 옵션. 예전 UNIX계열 표준 압축 파일인 tar.Z에 사용
  • -z : gzip 관련 옵션으로 압축 파일인 tar.gz에 사용
  • -j : bzip 관련 옵션. tar.bz2
  • -J : xz관련 옵션 tar.xz

compress, uncompress

전통적으로 유닉스에서 사용했던 압축 프로그램. 압축률이 낮아 현재는 안씀.

[사용법]
$ compress, uncompress [option] 파일명

옵션

  • -c : 표준 출력을 지정
  • -v : 압축 관련 정보 출력

gzip, gunzip

GNU에서 만듬

[사용법]
$ gzip, gunzip [option] 파일명

옵션

  • -d : 압축 풀 때
  • -1 : 압축 시간 줄이고. 압축율은 떨어짐
  • -9 : 파일을 최대로 압축
  • -c : 결과를 표준 출력으로 보낼 때, tar과 병행해서 작업시
  • -l : 압축 파일에 대한 정보를 출력
  • -r : 대상이 디렉터리인 경우 하위 디렉터리까지 찾아서 처리
  • -v : 진행 과정을 이름, 퍼넷트와 함께 자세히 보여줌

bzip2, bunzip2

버로우즈-휠러 변환이라는 블록 정렬 알고리즘과 허브만 부화화를 사용하여 줄리안 시워드가 만듬.

[사용법]
$ bzip2, bunzip2 [option]

옵션

  • -d : 압축 풀 때
  • -1 : 파일의 압축 시간을 줄임
  • -9 : 파일을 최대로 압축
  • -c : 결과를 표준 출력으로 보낼 때
  • -f : 이 옵션주면 덮어쓰기가 가능해짐

xz, unxz

LZMA2라는 알고리즘을 이용하여 만든 데이터 무손실 압축 프로그램. 매우 높은 압축률을 자랑.

[사용법]
$ xz, unxz [option] 파일명

옵션

  • -z : 기본 옵션. 사용안해도 됨
  • -d : 풀 때 사용.

zip, unzip

DOS/Windows 계열 운영체제에서 많이 사용

[사용법]
$ zip [option] 압축 파일명 파일명
$ unzip 압축 파일명

옵션

  • -r : 디렉터리인 경우 하위 디렉터리 포함

gcc(GNU Compiler Collection)

gcc는 GNU 프로젝트에 의해 만들어진 일종의 컴파일러 모음으로 C, C++, Objective-C, Fortran, Java, Ada, Go 등 다양한 프로그래밍 언어를 지원

[사용법]
$ gcc [option] 파일명

옵션

  • -o : 컴파일 시 실행 파일 이름 지정
  • -c : 링크는 하지 않고 목적 파일만을 만들어 낼 때 사용

라이브러리 관리

라이브러리의 개요

프로그램에서 특정한 기능을 하는 루틴들을 모아 놓은 것. 하나 이상의 서브루틴, 함수, 클래스로 만듬. 이러한 라이브러리들은 프로그램을 개발할 때 사용자의 프로그램과 링크되어 실행 가능한 형태로 완성됨. 링크 방식에 따라 동적, 정적으로 나뉨.

정적 링크 라이브러리
프로그램을 컴파일 할 때 실행 파일에 포함되어 배포되는 방식

동적 링크 라이브러리
실행 프로그램에 항상 라이브러리를 포함하는 것이 아니라 필요할 때만 라이브러리를 메모리에 적재하는 방식

운영체제에서도 수많은 명령어가 같은 루틴을 공유하는 것을 공유 라이브러리라고 함. 실행 파일 내부에 넣어두지 않고 프로그램을 실행할 떄 가져다 사용하므로 메모리의 효율성이 좋음.

공유 라이브러리의 개요

운영체제에서는 많은 응용 프로그램에 동적으로 링크되어 공유되는 라이브러리를 공유 라이브러리라 부른다.

공유라이브러리의 특징

의존성
동적으로 링크된 프로그램은 적어도 하나 이상의 공유 라이브러리가 필요. 없다면 실행되지 않음.

링크
동적으로 링크된 실행 파일은 실행 시에 공유 오브젝트에 대한 동적 링커인 ld.so에 의해 검사됨

공유 라이브러리 관련 디렉터리 및 파일

개요 및 관련 디렉터리

  • 공유 라이브러리는 파일명 뒤에 .so라고 덧붙여져 있음
  • 특정 디렉터리의 위치를 라이브러리 관련 디렉터리로 등록하려면 /etc/ld.so.conf 파일을 사용
  • Cent OS 8버전 부터는 대부분 공유 라이브러리 파일들을 /lib64 디렉터리 안에 두고 같이 관리.

관련 파일

/etc/ld.so.conf
추가로 다른 디렉터리를 등록할 시 사용하는 환경 설정 파일. ldconfig라는 명령을 수행해서 관련 정보를 갱신.

CentOS 7 버전에서는 include 지시자를 이용해서 /etc/ld.so.conf.d 디렉터리 안에 있는 *.conf 파일에 설정된 정보를 추가로 읽어 들임. /etc/ld.so.conf 파일에 등록할 라이브러리 경로를 추가한 후 ldconfig 명령을 실행

/etc/ld.so.cache
(/lib, /usr/lib) = (/lib64) 디렉터리뿐만 아니라 /etc/ld.so.conf 파일에 명시한 디렉터리에서 찾을 수 있는 라이브러리 파일 목록 정보를 담고 있는 파일

공유 라이브러리 관련 명령어

ldconfig

공유 라이브러리 관련 정보를 갱신하고 설정하는 명령

[사용법]
$ ldconfig [option] 라이브러리

옵션

  • -p : 현재 캐시에 저장되어 있는 공유 라이브러리 목록 정보를 출력
  • -v : 명령 실행과 관련된 자세한 정보를 출력
  • -f : /etc/ld.so.conf 파일 대신에 다른 환경 설정 파일을 지정할 때 사용.

ldd

현재 캐시에 저장되어 있는 공유 라이브러리 목록 정보를 출력

[사용법]
$ ldd [option] 파일명

옵션

  • -v : 관련 라이브러리 정보를 버전 등과 함께 자세히 출력
  • -f : /etc/ld.so.conf 파일 대신에 다른 환경 설정 파일을 지정할 떄 사용.

공유 라이브러리 관련 환경 변수

LD_LIBRARY_PATH. 특정 프로그램 실행 시 라이브러리 등록이 필요하면 이 변수에 디렉터리 경로를 등록하면 됨.

728x90
반응형
댓글
반응형
250x250
글 보관함
최근에 달린 댓글
«   2024/11   »
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
Total
Today
Yesterday
링크