
부팅부터 시작해서 전체 시스템을 관리하는 systemd 도구를 소개한다.
명령행에서 systemd를 다루는 systemctl 명령으로 시스템 서비스를 어떻게 제어하는 지 확인해본다.
systemd : 시스템 관리자부팅 과정부터 다시 되새겨보자.
ps 1로 1번 프로세스 systemd를 확인할 수 있다.
시스템 관리자 systemd는 부팅 프로세스만 처리하지 않고 시스템을 전반적으로 관리하는 만능 도구로 개발되었다.
systemctl [옵션][명령] : systemd 관리systemctl로 시스템 상태 조회systemctl list-units는 유형별 유닛 목록과 상태를 화면에 표시한다.
옵션이나 추가 명령 없이 systemctl 을 실행한 결과와 동일하나, more나 less 처럼 up/down 버튼으로 화면 스크롤이 가능하다. q를 누르면 스크롤을 종료하고 명령 프롬프트로 돌아온다.

-t 옵션 추가 시 유닛 유형에 따라 결과를 필터링 할 수 있다.

target은 부팅 과정에서 활성화 할 유닛을 결정하는 유닛이다.
systemctl list-dependencies 는 의존 관계에 있는 유닛을 보여준다.

systemctl get-default는 현재 기본 target을 보여준다.

systemd의 default.target은 graphical.target의 심볼릭링크이다.

명령 인자 없이 systemctl list-dependencies를 실행하면 기본 target과 관련된 유닛 목록을 보여준다. target 유닛을 기준으로 살펴보면 systemd가 부팅 과정에서 시스템을 초기화하고자 어떤 일을 처리하는지 유추할 수 있다.

systemctl로 서비스 제어하기status는 서비스 상태를 보여주는 명령이다.
status 로 조회 시 순서대로 서비스 이름과 설명, 서비스 유닛 설정파일 상태, 서비스 활성화 여부, 프로세스 정보, 서비스 실행과정에서 발생한 로그가 화면에 표시된다.

is-active 로 서비스가 현재 활성화 상태인지 확인할 수 있다.
is-enabled로 부팅과정에서 자동 활성화 되는지 여부를 확인할 수 있다.

stop 명령으로 서비스를 중지할 수 있다. 시스템 상태를 변경하므로 sudo가 필요하다.
중지 후 상태를 확인해보면 inactive로 상태가 변경된 것을 확인해 볼 수 있다.

그 외 상태를 변경하는 명령은 다음과 같다.
| 명령 | 설명 |
|---|---|
start | 서비스 시작 |
restart | 서비스 재시작 |
disabled | 부팅 과정에서 서비스 자동 활성화 해제 |
enabled | 부팅 과정에서 서비스 자동 활성화 설정 |
journalctl : systemd 로그 정보 조회systemctl status 로 확인할 수 있는 로그 정보는 systemd-journald가 제공한다. systemd-journald는 부팅부터 발생하는 systemd의 로그 정보를 이진 자료로 저장하므로, journalctl 명령으로만 확인할 수 있다.
-u(--unit) 옵션으로 특정 유닛에 대한 로그 정보를 조회 할 수 있다. 로그 정보는 less로 화면에 출력된다.

-e(--pager-end) 옵션으로 최근 로그정보부터 화면 스크롤을 시작할 수 있다. -u 옵션과 함께 사용이 가능하다.

-p(--priority) 옵션으로 로그 정보를 중요도에 따라 필터링이 가능하다.
| 로그수준 | 설명 |
|---|---|
| emerg | 응급 |
| alert | 경고 |
| crit | 심각 |
| err | 오류 |
| warning | 주의 |
| notice | 알림 |
| info | 의미있는 정보 |
| debug | 디버그 정보 |
예를 들어 다음 명령은 장치 설정 과정에서 발생한 오류를 찾아내고자 systemd-udevd의 오류 로그만 조회한다.

-S(--since)나 -U(--until) 옵션 사용 시 날짜나 시간을 기준으로 로그 필터링이 가능하다. 혼용 또한 가능하다.
연-월-일 시:분:초 형식으로 입력하며, 시간이 생략되면 00:00:00 이 기준이 된다.
날짜대신 yesterday, today, tomorrow를 입력하여 어제, 오늘, 내일을 지정할 수도 있다.

