주요 명령어
systemd
를 위한 주요 명령어는 다음과 같습니다.
- systemctl
- systemctl-analyze
- systemctl-cgls
- systemd-cgtop
- systemd-loginctl
systemctl
전체 서비스 목록을 출력해 줍니다.
$ systemctl ... ipmi.service loaded active exited IPMI Driver ipmievd.service loaded failed failed Ipmievd Daemon irqbalance.service loaded active running irqbalance daemon kmod-static-nodes.service loaded active exited Create list of required static device nodes for the current kernel kubelet.service loaded active running kubelet: The Kubernetes Node Agent lvm2-lvmetad.service loaded active running LVM2 metadata daemon lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling network.service loaded failed failed LSB: Bring up/down networking noms_nsight.service loaded active exited SYSV: noms_nsight noms_nsight_jp.service loaded active exited SYSV: noms_nsight nscd.service loaded active running Name Service Cache Daemon ntpdate.service loaded active exited Set time via NTP prov2-line-agent.service loaded active running PROV2 agent rhel-dmesg.service loaded active exited Dump dmesg to /var/log/dmesg rhel-domainname.service loaded active exited Read and set NIS domainname from /etc/sysconfig/network rhel-import-state.service loaded active exited Import network configuration from initramfs rhel-readonly.service loaded active exited Configure read-only root support ...
변경된 서비스 설정 정보를 데몬에 반영하기
$ systemctl daemon-reload
서비스를 활성화 하기
$ systemctl enable [서비스명]
서비스를 비활성화 하기
$ systemctl disable [서비스명]
서비스 활성화 여부 확인하기
$ systemctl is-enabled [서비스명] enabled
서비스 시작하기
systemctl start [서비스명]
서비스 종료하기
$ systemctl stop [서비스명]
서비스 재시작하기
$ systemctl restart [서비스명]
서비스 갱신하기
$ systemctl reload [서비스명]
서비스 동작 여부 확인하기
$ systemctl is-active [서비스명] active
서비스 상태 출력 하기
$ systemctl status -l [서비스명] kubelet.service - kubelet: The Kubernetes Node Agent Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/kubelet.service.d └─10-kubeadm.conf Active: active (running) since Wed 2018-12-26 20:14:53 JST; 5 months 21 days ago Docs: https://kubernetes.io/docs/ Main PID: 77429 (kubelet) Tasks: 24 Memory: 68.2M CGroup: /system.slice/kubelet.service └─77429 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=cgroupfs --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d --network-plugin=cni
서비스 이름과 활성화 여부 확인하기
$ systemctl list-unit-files ... initrd-udevadm-cleanup-db.service static ip6tables.service disabled ipmi.service enabled ipmievd.service enabled iprdump.service disabled iprinit.service disabled iprupdate.service disabled ipsec.service disabled iptables.service enabled irqbalance.service enabled kdump.service masked kmod-static-nodes.service static kpatch.service disabled kubelet.service enabled libstoragemgmt.service masked lm_sensors.service masked ...
부팅시 실패한 서비스 목록 출력하기
$ systemctl --failed UNIT LOAD ACTIVE SUB DESCRIPTION ipmievd.service loaded failed failed Ipmievd Daemon network.service loaded failed failed LSB: Bring up/down networking systemd-tmpfiles-clean.service loaded failed failed Cleanup of Temporary Directories systemd-tmpfiles-setup.service loaded failed failed Create Volatile Files and Directories LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 4 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
systemd-analyze
systemd-analyze
명령어는 분석 정보를 출력해 줍니다.
$ systemd-analyze Startup finished in 862ms (kernel) + 868ms (initrd) + 1min 4.908s (userspace) = 1min 6.639s
$ systemd-analyze blame 50.457s unbound-anchor.service 30.003s iaas-pm-bootup.service 7.705s cloud-final.service 7.102s cloud-init.service 3.270s ntpdate.service 2.743s network.service 1.252s docker.service 640ms cloud-init-local.service 369ms cloud-config.service 345ms lvm2-monitor.service 313ms systemd-udev-settle.service 251ms dev-vda2.device 183ms prov2-line-agent.service 141ms snmpd.service 124ms sshd-keygen.service 111ms hostagent_kr.service 111ms hostagent_jp_line.service 90ms systemd-vconsole-setup.service 51ms rc-local.service ...
critical-chain
을 이용하면, 시간을 많이 소요한 서비스의 실행과 대기에 대해서 체인 형태로 출력할 수 있습니다.
$ systemd-analyze critical-chain The time after the unit is active or started is printed after the "@" character. The time the unit takes to start is printed after the "+" character. multi-user.target @34.062s └─iaas-pm-bootup.service @4.056s +30.003s └─basic.target @623ms └─sockets.target @623ms └─dbus.socket @623ms └─sysinit.target @622ms └─systemd-update-utmp.service @617ms +5ms └─systemd-remount-fs.service @183ms +13ms └─systemd-fsck-root.service @584542y 2w 2d 20h 1min 49.069s +11ms └─systemd-journald.socket └─-.slice
systemd-cgls
systemd-cgls
명령어는 현재 cgroup
에 대한 정보를 타입별로 출력해줍니다.
$ systemd-cgls ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 ├─kubepods │ └─burstable │ ├─podfc4890ab91dfb8b8a630043af37f52d8 │ │ ├─dc2312d450abd72c1490775e615fbf41abbef49bb4ccdc6a9d9d8bb7ec880724 │ │ │ └─40435 kube-apiserver --apiserver-count=5 --authorization-mode=Node,RBAC --advertise-address=10.xx.xx.xx --allow-privileged=true --client-ca-file=/etc/kubernetes/pki/ca.crt --disable-admission-plugins=Persiste │ │ └─5b42977c143110757f6d7ae747fbe435f878f8427d30274936eb06bb5dc21b2c │ │ └─40405 /pause │ ├─pod734afb7f-08db-11e9-aa26-fa1648a9a65b │ │ ├─a76db3d9d75d1a48f3231c75b601fd6c7ad1b33ff83e054482b800b2cf6ca049 │ │ │ └─104263 /bin/node_exporter --path.procfs=/host/proc --path.sysfs=/host/sys │ │ └─e8bffecd18687c7cb1ca90b3de906928e6af50081601203a2bab7f5fea19ae34 │ │ └─104169 /pause │ ├─pod49e68627-08ce-11e9-837e-fa1648a9a65b │ │ ├─dd6d53bb4036a64572e4a64f5997a87e5bfb6e5c25f453153854fca88105e54a │ │ │ └─kube-proxy │ │ │ └─80946 /usr/local/bin/kube-proxy --config=/var/lib/kube-proxy/config.conf │ │ └─bc202979fd26611a1ec0ac59fd013d66dff2262da590d326dd3817ed5a56dd28 │ │ └─80907 /pause │ ├─pod45de6e05-08ce-11e9-837e-fa1648a9a65b │ │ ├─3881a2163345cf5b6f9c6bca07e2f36394fe6a0ee3a13a33a3f12e9669385a52 │ │ │ └─80804 /opt/bin/flanneld --ip-masq --kube-subnet-mgr --iface=private --iface=bond0 --iface=eth0 │ │ └─a8b41a45c4e3cf278d3841e67914c81382bc4b536f6b86183c3a2eed4f059377 │ │ └─80713 /pause │ ├─pod705e7ce1217a37349a5567101e60165d │ │ ├─51d6579bb1d26c0868908077434fe519377b67ba5bd81530bd3d0c3ad1369260 │ │ │ └─82155 kube-scheduler --address=127.0.0.1 --kubeconfig=/etc/kubernetes/scheduler.conf --leader-elect=true │ │ └─dfc5ef7ff3565013fd50361c2a848010916fe4246dbd6c190df740068648c510 │ │ └─77628 /pause ...
systemd-cgtop
system-cgtop
명령어는 흔히 알고 있는 top
명령어 처럼, cgroup
에 대하여 CPU, Memory, I/O에 대한 결과를 출력해 줍니다.
$ $ systemd-cgtop Path Tasks %CPU Memory Input/s Output/s / 84 - 4.8G - - /kubepods.slice - - 850.1M - - /kubepods.slice/kubepods-besteffort.slice - - 370.7M - - /kubepods.slice/kubepods-best...s-besteffort-pod0b4c1d31_78dc_4d84_b496_6f082c63977b.slice - - 14.1M - - /kubepods.slice/kubepods-best...epods-besteffort-pod0eb79a133166edcb3192c85c01bd9b32.slice - - 356.6M - - /kubepods.slice/kubepods-burstable.slice - - 463.2M - - /kubepods.slice/kubepods-burs...bepods-burstable-pod4c9fe2c16888e009cff100467a01a432.slice - - 14.8M - - /kubepods.slice/kubepods-burs...bepods-burstable-pod87880e44c58a3215aba1a2b52b5f211e.slice - - 14.1M - - /kubepods.slice/kubepods-burs...bepods-burstable-podbe31476e2cd67aa8bdc87bbf4f55679d.slice - - 434.2M - - /kubepods.slice/kubepods-podb3a9dde5_43ee_43db_af71_e0d4cfb0e27c.slice - - 16.1M - - /kubepods.slice/kubepods-podb...9d86c2566ee644a239924a32c90888bb76baa2ab1986ac3e54e7.scope 1 - 16.0M - - /kubepods.slice/kubepods-podb...5a75cafc6ee2540f1110c5aabfc177d03df2291c4229949adc96.scope 1 - 44.0K - - /system.slice - - 1.3G - -