Systemd Essentials: 서비스, 회사 및 로그와 함께 작업

Systemd Essentials: 서비스, 회사 및 로그와 함께 작업

2022-06-01 last update

10 minutes reading Logging System Tools Linux Commands

소개


최근 몇 년 동안, Linux 발행판은 점점 더 많은 다른 init 시스템에서 systemd로 넘어갔다.systemd 도구 세트는 안내부터 전체 기계를 관리하는 데 사용되는 신속하고 유연한 init 모델을 제공합니다.
이 설명서에서는 사용 가능 systemd 서버를 관리하는 데 필요한 가장 중요한 명령을 간략하게 설명합니다.이것들은 구현된 모든 서버(모든 Ubuntu 15.04, Debian 8, CentOS 7, Fedora 15 이상 버전의 운영체제)에 적용해야 한다.시작합시다.

기본 단원 관리

systemd 관리 및 역할의 기본 객체는 단위입니다.단원은 여러 종류가 있을 수 있지만 가장 흔히 볼 수 있는 유형은'서비스'이다.systemd를 사용하는 서버에서 서비스를 관리하려면 우리의 주요 도구는 .service 명령입니다.
모든 정상적인 init 시스템 명령은 systemd 명령과 같은 효과가 있습니다.우리는 systemctl 단원을 사용하여 프레젠테이션을 진행할 것입니다. (소프트웨어 패키지 관리자를 사용하여 Nginx를 설치해야 이 서비스 파일을 얻을 수 있습니다.)
예를 들어, 다음을 입력하여 서비스를 시작할 수 있습니다.
  1. sudo systemctl start nginx.service
다음을 입력하여 다시 차단할 수 있습니다.
  1. sudo systemctl stop nginx.service
서비스를 다시 시작하려면 다음을 입력합니다.
  1. sudo systemctl restart nginx.service
정상적인 기능을 중단하지 않고 서비스를 다시 로드하려면 다음을 입력합니다.
  1. sudo systemctl reload nginx.service

셀 활성화 또는 비활성화


기본적으로 대부분의 systemctl 셀 파일은 부트 시 자동으로 시작되지 않습니다.이 기능을 구성하려면 활성화 단원이 필요합니다.그러면 부트 "대상"에 마운트되어 타겟이 시작될 때 트리거됩니다.
서비스를 부트할 때 자동으로 시작하려면 다음을 입력합니다.
  1. sudo systemctl enable nginx.service
서비스를 다시 비활성화하려면 다음을 입력합니다.
  1. sudo systemctl disable nginx.service

시스템 상태 개요 가져오기


우리는 시스템 상태에 대한 개요를 얻기 위해 nginx.service 서버에서 대량의 정보를 얻을 수 있다.
예를 들어, systemd 활성으로 나열된 모든 단위 파일을 가져오려면 기본 systemd 비헤이비어이므로 실제로 취소할 수 있습니다.
  1. systemctl list-units
현재 활성화되지 않은 셀을 포함하여 메모리에 로드되었거나 로드하려고 하는 모든 셀을 열거하려면 systemd 스위치를 추가합니다.
  1. systemctl list-units --all
시스템에 설치된 모든 셀list-units을 포함하여 메모리에 로드되지 않은 셀을 나열하려면 다음을 입력합니다.
  1. systemctl list-unit-files

기본 로그 정보 보기

systemctl라는 systemd 구성 요소가 시스템의 모든 부분을 수집하고 관리하는 일기장 분록이것은 기본적으로 응용 프로그램과 코어에서 온 로그 정보입니다.
모든 로그 항목을 보려면 가장 오래된 항목부터 다음을 입력합니다.
  1. journalctl
기본적으로 --all 이 이전 부트 기록을 저장하도록 구성되면 현재 및 이전 부트의 항목이 표시됩니다.일부 발행판은 기본적으로 이 기능을 사용하지만, 다른 발행판은 이 기능을 사용하지 않습니다. (이 기능을 사용하려면 systemd 파일을 편집하고 systemd 옵션을 "persistent"로 설정하거나 journald 를 입력하여 영구 디렉터리를 만듭니다.
현재 부트의 로그 항목만 보려면 journald 플래그를 추가합니다.
  1. journalctl -b
일반적으로 /etc/systemd/journald.conf 로 표시되는 메시지와 같은 커널 메시지만 보려면 Storage= 플래그를 사용합니다.
  1. journalctl -k
마찬가지로, 추가 sudo mkdir -p /var/log/journal 플래그를 통해 현재 부트로 제한할 수 있습니다.
  1. journalctl -k -b

쿼리 단위 상태 및 로그


상술한 명령을 통해 일반 시스템 상태에 접근할 수 있지만 각 단원 상태에 대한 정보를 얻을 수 있다.
셀의 현재 상태에 대한 개요를 보려면 -b 옵션을 dmesg 명령과 함께 사용할 수 있습니다.이 단원이 활성 상태인지, 절차에 대한 정보, 그리고 최신 일기장 분록을 보여 줍니다.
  1. systemctl status nginx.service
관련 단원의 모든 일기장 분록을 보려면 -k 명령에 단원 이름이 있는 -b 옵션을 제공하십시오.
  1. journalctl -u nginx.service
이전과 마찬가지로 로고를 추가하여 항목을 현재 부트로 제한할 수 있습니다.
  1. journalctl -b -u nginx.service

단위와 단위 서류를 검사하다


지금까지 단원의 상태를 시작하거나 정지함으로써 수정하는 방법을 알고 있으며, 절차에서 발생하는 상황을 파악하기 위해 상태와 로그 정보를 보는 방법을 알고 있습니다.그러나 우리는 아직 단위와 단위 문서의 다른 방면을 어떻게 검사하는지 보지 못했다.
셀 파일에는 셀 관리 및 실행을 위한 매개변수status가 포함되어 있습니다.단위 파일의 전체 내용을 보려면 다음을 입력합니다.
  1. systemctl cat nginx.service
셀의 종속 관계 트리를 보려면 셀을 시작하면 셀systemctl이 활성화됩니다.
  1. systemctl list-dependencies nginx.service
그러면 관련 셀 -u 이 반복적으로 확장됩니다.모든 관련 단원을 차례로 확장하려면 journalctl 로고를 전달합니다.
  1. systemctl list-dependencies --all nginx.service
마지막으로 시스템의 장치 설정에 대한 하위 세부 정보를 보려면 -b 옵션을 사용하십시오.
  1. systemctl show nginx.service
이것은 systemd 에서 관리하는 매개 변수의 값을 제공합니다.

단위 파일 수정


셀 파일을 수정해야 하는 경우 systemd 명령 자체에서 실제 디스크 위치로 이동할 필요가 없도록 변경할 수 있습니다.
기본 단위 파일에 설정된 단위 파일 세그먼트를 추가하거나 덮어쓰려면 단위의 target 옵션을 호출합니다.
  1. sudo systemctl edit nginx.service
코드 세그먼트를 만드는 대신 셀 파일의 전체 내용을 수정하려면 --all 로고를 전달합니다.
  1. sudo systemctl edit --full nginx.service
단위 파일을 수정한 후 변경 사항을 얻기 위해 프로세스 자체를 다시 불러와야 합니다.
  1. sudo systemctl daemon-reload

대상 사용(운영 수준)


init 시스템의 또 다른 기능은 서로 다른 상태에서 서버 자체를 바꾸는 것이다.전통적인 init 시스템은 통상적으로 이것들을'실행 단계'라고 부른다. 시스템이 언제든지 하나의 운행 단계에 있을 수 있도록 한다.show에서'목표'를 사용합니다.목표는 기본적으로 서버가 특정 상태에 들어갈 수 있는 동기화점이다.서비스와 다른 단위 파일은 하나의 목표에 귀속될 수 있고 여러 목표가 동시에 활동 상태에 있을 수 있다.
시스템에서 사용 가능한 모든 대상을 보려면 다음을 입력합니다.
  1. systemctl list-unit-files --type=target
systemd 부트 시 도달하려고 하는 기본 대상을 보려면 (이 반대로 대상 종속 관계 트리를 구성하는 모든 셀 파일이 시작됩니다.)
  1. systemctl get-default
systemd 옵션을 사용하여 부트 시 사용할 기본 대상을 변경할 수 있습니다.
  1. sudo systemctl set-default multi-user.target
대상과 연관된 단위를 보려면 다음을 입력합니다.
  1. systemctl list-dependencies multi-user.target
systemctl 옵션을 사용하여 시스템 상태를 수정하여 대상 간에 변환할 수 있습니다.이것은 지정한 대상에 귀속되지 않은 모든 단위를 정지합니다.격리된 대상이 기본 서비스를 중단하지 않도록 하십시오.
  1. sudo systemctl isolate multi-user.target

서버 중지 또는 재부팅


시스템이 전환할 수 있는 일부 주요 상태에 대해 단축키를 사용할 수 있다.예를 들어, 서버를 닫으려면 다음을 입력합니다.
  1. sudo systemctl poweroff
시스템을 재부팅하려면 다음을 입력하십시오.
  1. sudo systemctl reboot
다음 내용을 입력하여 구조 모드로 안내할 수 있습니다.
  1. sudo systemctl rescue
대부분의 운영 체제에는 이러한 작업의 기존 별칭이 포함되어 있으므로 edit 또는 --full 를 간단히 입력할 수 있으며 systemd 를 입력할 필요가 없습니다.그러나 모든 시스템에 설치될 수 있다는 보장은 없다.

다음 단계


이제 사용systemd 서버를 관리하는 방법에 대한 기본 지식을 알고 계실 것입니다.그러나 수요가 커지면서 배워야 할 것이 많다.다음은 가이드에 대한 링크입니다. 여기에는 이 가이드에서 논의한 일부 구성 요소에 대한 자세한 정보가 포함되어 있습니다.
  • How To Use Systemctl to Manage Systemd Services and Units
  • How To Use Journalctl to View and Manipulate Systemd Logs
  • Understanding Systemd Units and Unit Files
  • init시스템의 장점을 어떻게 활용하는지 학습함으로써 당신은 기계의 상태를 제어하고 서비스와 절차를 더욱 쉽게 관리할 수 있습니다.