systemd 사용법
commands
- systemctl : 현재 동작중인 서비스들을 보여준다.
- systemctl list-unit-files : 등록된 모든 service 들을 보여준다.
- systemctl list-dependencies mariadb.service : mariadb.service 의 서비스간의 의존관계(dependecy)를 보여준다.
- systemctl set-default <new_taget_file> : 기본 target 을 변경
- systemctl get-default : 기본 target 을 알려준다.
- systemctl isolate runlevel5.target : runlevel5 로 runlevel 을 변경한다.
- service 실행
- systemctl start foo.service
- systemctl stop foo.service
- systemctl restart foo.service
- systemctl status foo.service
- 부팅시 실행
- systemctl enable foo.service : 부팅시 실행
- systemctl disable foo.service : 부팅시 실행하지 않도록
- systemd-analyze : 부팅에 소요된 시간을 알 수 있다.
- systemd-analyze blame : 각 서비스별 초기화에 걸린 시간을 확인할 수 있다.
- systemd-analyze plot : init 시간을 그래프로 나타내 준다. output 을 html 로 저장해서 보면 된다.
- systemd-analyze critical-chain <service_name> : 초기화에 시간을 많이 먹는 서비스들을 보여준다.
- systemd-cgls
- systemd-cgtop
- systemd-loginctl
unit file
기본적으로 /usr/lib/systemd/system 디렉토리에 Unit File 을 보관한다. 보통 .service 의 확장자(?)를 가지고 있다.만약 기존의 unit file 을 변경하려면, 이 파일을 직접 변경하는 것보단 override 하는 것을 추천한다.[ref.1] (etc/systemd/system/<service>.service)
systemctl edit
systemctl edit mariadb수정할 수 있다. 자세한 내용은 ref. 1, ref. 4 을 확인하자.
unit file 만들기
target
타겟(Target)은 Sys V 에 Run Level 과 비슷하다. 즉, booting 을 어느 단계까지 할 것이냐를 결정하는 것이라고 보면 된다.target 도 아래 경로에서 확인할 수 있다.(.target 으로 되어 있다.)
- /usr/lib/systemd/system/
default target 변경
기본적으로 runlevel*.target(symbolic link 이다.) 이 존재한다. 그래서 이것을 sysv 의 runlevel 처럼 사용하면 된다.
# systemctl set-default runlevel3.target # systemctl get-default
isolate target
현재 target 을 바꾸고 싶으면 isolate 을 사용하면 된다. (isolate 의 의미)# systemctl isolate runlevel5.target예를 들어 만약 gui 를 사용하고 있는데 isolate runlevel3.target 을 하면, gui 를 닫아버리고, runlevel3.target 에 맞추게 된다.
현재 active target 확인
# systemctl list-units --type=target
댓글 없음:
댓글 쓰기