일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 스타벅스리저브콜드브루
- 오운완
- 달리기
- 여니브레드
- 티지아이포럼
- 런데이
- 이코노미스트한국구독센터
- 재택커피
- 저동하녹
- 런데이애플워치
- 잘쉬어야지
- 송고버섯피자
- apollo-sandbox
- Zone2
- 중사랑
- kafka-connect
- neovim
- sky빛의아이들
- 플라스틱은 어떻게 브랜드의 무기가 되는가
- 마이더치콜드브루
- schema-registry
- parquet
- 집커피
- 여행
- 콜드브루메이커
- sparksql
- 강릉여행
- 루스틱
- apollo-server-v3
- 가람집옹심이
- Today
- Total
해뜨기전에자자
systemd initd 본문
initd systemd
# 현상
ubuntu 14.04에서 systemctl 설치 후에
systemctl enable {path}
로 서비스를 등록해줘도 제대로 등록되지 않고, start/status를 해도 resource not found로 파일을 제대로 찾지 못했다.
```
systemctl list-units
```
# 원인
이유는 14.04 initd, 16.04 systemd가 default 이기 때문이었다.
process pid 1번 process인 init가 systemd로 바뀐거고
제대로 동작하도록 하려면 grub을 수정해서 init이 systemd로 동작하도록 변경해주어야한다
/etc/default/grub 파일에 아래와 같이 init=/lib/systemd/systemd 를 추가해주고
```
GRUB_CMDLINE_LINUX="init=/lib/systemd/systemd ......"
```
```
update-grub
reboot
```
* 별다른 문제 없이 떠야 정상이겠지만 openstack vm이라면 systemd용 cloud-init 이 존재하지 않아서 필요한 네트워크 세팅등을 끝내지 못해 bootup 에 실패할 수 있다
# 해결
14.04에서 init=systemd로 잡고 올려서 쓰거나 그냥 16,04를 쓴다
# 더 찾아보기
## initd
initd synchronous, blocking
## upstart
upstart event-driven, asnynchronous
perfect backward compatibility with sysvinit
ubuntu 16.04 deprecated
## systemd
### 추세
최근 linux 배포판 대부분(cetnos >= 7 , ubuntu >= 16.04)은 systemd를 채택하고 있음
유닉스 철학(https://ko.wikipedia.org/wiki/유닉스_철학)을 위반했다는 비평을 받기도함.
특히 1번 '각 프로그램이 하나의 일을 잘할 수 있게 만들것'
### 특징
systemd로 바꾸게 되면 기존의 sysVinit(/sbin/init, /etc/init.d/*, /etc/rc*.d) 데몬 관리용 스크립트들과 배포판별로 제공하던 런레벨 관리자도 사용하지 않음
systemd는 dbus(message bus system, interprocessing communication)를 이용해서 병렬적으로 실행하도록함
journalctl를 이용해 데몬 출력/로그 관리
### initd compatibility
TODO
### 유용할만한 command (몰랐던거 위주로)
```
# 부팅시 자동실행/비활성화
systemctl enable/disable
# 서비스 의존성, order
systemctl list-dependencies
# 실패한 units
systemctl --failed
# -H 이용한 remote 조회(비번을 알거나 key가 있어야 동작함) 굳이 이렇게 해야되나싶다 ㅎㅎ
systemctl status sshd -H root@{ip}
# 시스템 부팅시간 분석
systemd-analyze # start up (kernel + initrd + userspace) 토탈 시간
systemd-analyze blame # 동작 시간 오래걸린거 부터 보임
systemd-analyze plot # svg파일 만들어준다. 신기..
# journalctl
journalctl
journalctl -b # 부팅 로그
journalctl -f # tailing
journalctl --since=today # 오늘 로그
```
'개발 > linux & tools' 카테고리의 다른 글
perf sched for Linux CPU scheduler analysis (0) | 2019.04.03 |
---|---|
container 간단히 (0) | 2019.01.17 |
haproxy vs nginx? (0) | 2018.05.16 |
route private network (0) | 2018.03.20 |
ssh proxy, ssh local fowarding (0) | 2018.03.20 |