[Ubuntu] 서비스와 패키지의 이해

[Ubuntu] 서비스와 패키지의 이해

서비스란 웹 서버, 데이터베이스 서버 등을 운영하기 위한 서버 프로세스로 거의 모든 서비스는 백그라운드 프로세스 형태로 가동됩니다. 서버 운영을 위해 리눅스를 설치하는 경우 서비스는 곧 설치,운영해야 하는 소프트웨어라고 볼 수 있습니다.

패키지는 배포에 용이하도록 프로그램을 압축한 형태를 의미하는데, 리눅스에서는 설치 프로그램으로 볼 수 있습니다. 우분투 리눅스에서 패키지를 설치하기 위해서는 apt-get 명령을 사용합니다.

#01. 서비스

1. 서비스 = 데몬(Daemon)

  • 웹 서버, 데이터베이스 서버 등을 운영하기 위한 서버 프로세스

서비스, 데몬, 서버 프로세스 는 모두 동일한 개념입니다.

2. 서버 프로세스

  • 백그라운드로 실행되는 프로세스
  • 서비스 매니저 프로그램인 systemd 프로그램이 운영함
  • 각 프로세스가 독자적인 하나의 동작을 제공함
    • http서비스는 웹 서버 동작
    • mysqld는 데이터베이스 서버 동작

3. 서비스 관리

1) 서비스 시작, 중지 관련 스크립트 파일 위치

  • /usr/lib/systemd/system 디렉토리에 존재
  • 파일명 형식 : 서비스이름.service
  • 실행 스크립트 파일은 systemctl 명령어에 의해 제어됨

service

2) 실행 및 종료

  • systemctl 명령에 옵션을 적용하여 사용함
  • 서비스 운영은 root 권한을 통해서만 수행 가능하므로 명령어 앞에 sudu를 추가해야 한다.
$ systemctl 옵션 서비스명

서비스 시작하기

$ sudo systemctl start 서비스명

서비스 중지하기

$ sudo systemctl stop 서비스명

서비스 재시작하기

$ sudo systemctl restart 서비스명

부팅시 자동 실행 등록

$ sudo systemctl enable 서비스명

부팅시 자동 실행 등록 해제

$ sudo systemctl disable 서비스명

서비스 가동 상태 확인

$ sudo systemctl status 서비스명

부팅시 자동 실행이 등록된 서비스 목록 확인

$ sudo systemctl list-unit-files

출력 결과가 너무 많을 수 있으므로 grep 명령을 결합하여 출력결과에서 원하는 행만 검색해서 확인할 수 있다.

$ sudo systemctl list-unit-files | grep mysql

list-unit-files

위 실행 결과는 예시일 뿐 입니다. 아직 mysql을 설치하지 않았기 때문에 실제 실습을 수행할 수는 없습니다.

#02. 리눅스 패키지(Linux Package)

  • 리눅스 시스템에서 소프트웨어를 실행하는데 필요한 파일들(실행 파일, 설정 파일, 라이브러리 등)이 담겨 있는 설치 파일 묶음
  • 공인된 저장소(Repository)에 등록되어 있는 패키지를 인터넷을 통해 내려받아 시스템에 설치한다

package

1. 패키지 관리자

  • 패키지의 설치, 업그레이드 삭제 등을 수행하여 패키지를 관리하는 목적의 프로그램
  • apt-get(ubuntu), yum(RedHat), Homebrew(Mac), Chocolatey(Window), NPM(Node), Yarn(Node), PIP(Python) 등이 있다.

2. apt-get

  • apt-get(Advanced Packaging Tool)은 우분투(Ubuntu)를 포함안 데비안(Debian)계열의 리눅스에서 쓰이는 패키지 관리 명령어 도구

1) 패키지 인덱스 정보 업데이트

  • apt-get은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list에 존재
  • 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻는다
$ sudo apt-get update

2) 설치된 패키지 업그레이드

$ sudo apt-get upgrade

3) 의존성검사하며 설치하기

$ sudo apt-get dist-upgrade

4) 패키지 설치

$ sudo apt-get install 패키지이름

5) 패키지 재설치

$ sudo apt-get --reinstall install 패키지이름

6) 패키지 삭제 : 설정파일은 지우지 않음

$ sudo apt-get remove -y 패키지이름

7) 설정파일까지 모두 지움

$ sudo apt-get purge -y 패키지이름

8) 패키지 검색

$ sudo apt-cache search 패키지이름

9) 패키지 정보 보기

$ sudo apt-cache show 패키지이름
호쌤(이광호)'s Picture

About 호쌤(이광호)

메가스터디IT아카데미에서 Java, Spring, Python, Frontend 등을 강의하는 IT 전문 강사이자 프리렌서 개발자 입니다.
https://www.youtube.com/@hossam-codingclub

Seoul, Korea http://www.hossam.kr