키워드:
#리눅스
# systemd, Upstart, sysV init
세 가지 모두 리눅스 계열에서 서비스(데몬)을 관리하는 방식이다.
# 조사하기
PID 1번이 시작 프로그램. 여기서부터 조사하면 알 수 있다.
$ sudo stat /proc/1/exe
File: '/proc/1/exe' -> '/sbin/init': 아직 알 수 없음
File: '/proc/1/exe' -> '/sbin/upstart'
File: '/proc/1/exe' -> '/lib/systemd/systemd'
1
2
3
4
2
3
4
또는
/etc/init.d: SysV init
/etc/init: upstart
$ /sbin/init --version
init (upstart 1.12.1)
$ dpkg -S /sbin/init
upstart: /sbin/init
$ dpkg -S /sbin/init
systemd-sysv: /sbin/init
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# systemd
- 최근 리눅스 대부분(Debian 8, OpenSUSE 42, Ubuntu 16.04, Fedora 23.10, CentOS 7)
- pid파일 등 표준화되어서 자동 처리됨
- 서비스파일:
/etc/systemd/system/{name}.service
- 실행:
systemctl status {name}
systemctl deamon-reload
systemctl enable {name}
systemctl disable {name}
# upstart
- 몇개 안남음(Ubuntu 14.04, LinuxMint 17.3)
- unix SystemV init 호환.
- Chrome OS, RHEL, Ubuntu 등에서 쓰임.
- Fedora, Debian에서도 옵션으로 쓰임.
- pid파일 등 서비스 파일에서 구현해줘야 함.
/var/run/{name}.pid
/var/lock/subsys/{name}
/var/log/{name}.log, /var/log/{name}.err
- 서비스파일:
/etc/init.d/{name}
,/etc/rc{runlevel}.d/[S|K]{seq}{name}
- rc는 링크파일, runlevel[2,3,4,5]는 S로 시작. [0,1,6]은 K로 시작, seq는 수행 우선순서
- 실행: status {name}
- 실행: service {name} status (호환)
# SysV init
/etc/rc.d/{name}
- 실행:
service {name} status
키워드:
#리눅스