1. 사용가능한 유닛 확인
# systemctl -t help
Available unit types:
service // 서비스 유닛
socket // 소켓 유닛, IPC(프로세스 내 통신) 소켓
target
device
mount
automount
snapshot
timer
swap
path
slice
scope
2. 서비스 유닛의 상태만 확인
# systemctl -t service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrt-xorg.service loaded active running ABRT Xorg log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
accounts-daemon.service loaded active running Accounts Service
alsa-state.service loaded active running Manage Sound Card State (restore and store)
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
bluetooth.service loaded active running Bluetooth service
chronyd.service loaded active running NTP client/server
.
.
.
3. 특정 유닛의 동작여부 확인
# systemctl is-active sshd.service
active
# systemctl is-active ntpd.service
inactive
4. 특정 유닛의 부팅 활성화 여부 확인
# systemctl is-enabled sshd.service
enabled
# systemctl is-enabled ntpd.service
disabled
5. 시스템 데몬을 활성화하여 부팅 시 시작 또는 중지
# systemctl disable sshd.service
rm '/etc/systemd/system/multi-user.target.wants/sshd.service'
# systemctl enable sshd.service
ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service'
6. 로드된 모든 유닛의 활성 상태 확인
# systemctl list-units -t service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coredump hook
abrt-oops.service loaded active running ABRT kernel log watcher
abrt-xorg.service loaded active running ABRT Xorg log watcher
abrtd.service loaded active running ABRT Automated Bug Reporting Tool
accounts-daemon.service loaded active running Accounts Service
alsa-state.service loaded active running Manage Sound Card State (restore and store)
atd.service loaded active running Job spooling tools
auditd.service loaded active running Security Auditing Service
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
bluetooth.service loaded active running Bluetooth service
chronyd.service loaded active running NTP client/server
.
.
.
7. 모든 유닛의 활성화 및 비활성화 설정 관련 확인
# systemctl list-unit-files -t service
UNIT FILE STATE
abrt-ccpp.service enabled
abrt-oops.service enabled
abrt-pstoreoops.service disabled
abrt-vmcore.service enabled
abrt-xorg.service enabled
abrtd.service enabled
accounts-daemon.service enabled
alsa-restore.service static
alsa-state.service static
alsa-store.service static
anaconda-direct.service static
anaconda-noshell.service static
anaconda-shell@.service static
anaconda-sshd.service static
anaconda-tmux@.service static
anaconda.service static
arp-ethers.service disabled
atd.service enabled
auditd.service enabled
autofs.service disabled
autovt@.service disabled
avahi-daemon.service enabled
blk-availability.service disabled
bluetooth.service enabled
brandbot.service static
brltty.service disabled
canberra-system-bootup.service disabled
canberra-system-shutdown-reboot.service disabled
canberra-system-shutdown.service disabled
certmonger.service disabled
cgconfig.service disabled
cgdcbxd.service disabled
cgred.service disabled
chrony-wait.service disabled
chronyd.service enabled
8. 실패한 서비스만 확인
# systemctl --failed -t service
9. 데몬 시작 및 중지
# systemctl status sshd.service
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since Mon 2015-03-16 20:41:25 KST; 54min ago
Process: 1528 ExecStartPre=/usr/sbin/sshd-keygen (code=exited, status=0/SUCCESS)
Main PID: 1563 (sshd)
CGroup: /system.slice/sshd.service
???1563 /usr/sbin/sshd -D
Mar 16 20:41:25 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
Mar 16 20:41:25 localhost.localdomain sshd[1563]: Server listening on 0.0.0.0 port 22.
Mar 16 20:41:25 localhost.localdomain sshd[1563]: Server listening on :: port 22.
Mar 16 20:51:24 localhost.localdomain sshd[14408]: Accepted password for root from 192.168.37.1 port 58759 ssh2
# systemctl stop sshd.service // 데몬 중지
# systemctl start sshd.service // 데몬 시작
# systemctl restart sshd.service // 데몬 재시작
# systemctl reload sshd.service // 설정 파일 reload
10. 수동 및 부팅 시 서비스가 시작되지 않도록 비활성화
# systemctl mask network
ln -s '/dev/null' '/etc/systemd/system/network.service'
# ll /etc/systemd/system/network.service
lrwxrwxrwx. 1 root root 9 Mar 16 21:39 /etc/systemd/system/network.service -> /dev/null
# systemctl start network
Failed to issue method call: Unit network.service is masked.
11. 마스킹된 서비스를 사용 가능하도록 만듬
# systemctl unmask network
rm '/etc/systemd/system/network.service'
12. runlevel 지정
1) runlevel 3(multi-user.target)
# systemctl isolate multi-user.target
2) runlevel 5(graphical.target)
# systemctl isolate graphical.target
3) graphical.target을 기본으로 설정
# systemctl set-default graphical.target
rm '/etc/systemd/system/default.target'
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'
4) 확인
# systemctl get-default
graphical.target
※ 루트 패스워드 복구
1. CentOS Linux, with Liux 3.10.0-123.el7.x86_64에 커서를 이동 후 e를 눌러 항목을 편집
2. 커서를 커널 명령줄(linux16으로 시작)으로 이동 후 마지막에 rd.break를 추가
ex) linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=~~~~~~~~ rhgb quiet LANG=en_US.UTF-8 rd.break
3. Ctrl+x를 눌러 변경 사항을 적용하여 부팅
4. 실제 시스템의 루트 파일시스템인 /sysroot에 읽기 전용으로 마운트 됨.
ex) mount | grep sysroot
/dev/mapper/centos-root on /sysroot type xfs (ro,relatime,attr2,inode64,noquota)
5. /sysroot를 rw로 remount
ex) switch_root:/# mount -o remount,rw /sysroot
switch_root:/# mount | grep sysroot
/dev/mapper/centos-root on /sysroot type xfs (rw,relatime,attr2,inode64,noquota)
6. /sysroot가 파일 시스템 트리의 루트로 취급되는 chroot된 환경으로 전환
ex) switch_root:/# chroot /sysroot
sh-4.2#
7. 새 루트 패스워드 변경
ex) sh-4.2# passwd root
8. 레이블이 없는 모든 파일이 부팅 중 다시 레이블이 지정되도록 한다.
ex) sh-4.2# touch /.autorelabel
9. exit;exit
※ 시스템 부팅 문제 진단 및 복구
1. 초기 디버그 쉘
1) systemctl enable debug-shell.service를 실행하면 부팅 시퀀스 중 시작단계에서 TTY9(Ctrl+Alt+F9)에 root로 로그인된 쉘이 실행됨. 다른 터미널은 로그인을 해야 함.(운영체제는 정상적으로 실행 됨)
# systemctl enable debug-shell.service
ln -s '/usr/lib/systemd/system/debug-shell.service' '/etc/systemd/system/sysinit.target.wants/debug-shell.service'
2) 디버깅을 마치면 반드시 debug-shell.service 서비스를 비활성화 해야 한다.
# systemctl disable debug-shell.service
rm '/etc/systemd/system/sysinit.target.wants/debug-shell.service'
2. 긴급 및 복구 대상
1) CentOS Linux, with Liux 3.10.0-123.el7.x86_64에 커서를 이동 후 e를 눌러 항목을 편집
2) 커서를 커널 명령줄(linux16으로 시작)으로 이동 후 마지막에 systemd.unit=rescue.target이나 emergency.target을 추가
ex) linux16 /vmlinuz-3.10.0-123.el7.x86_64 root=UUID=~~~~~~~~ rhgb quiet systemd.unit=rescue.target
Give root password for maintenance
(or type Control-D to continue): root 패스워드 입력
# passwd root
'Linux > CentOS' 카테고리의 다른 글
[CentOS7] iSCSI (0) | 2015.03.17 |
---|---|
[CentOS7] 네트워킹 관리 (0) | 2015.03.16 |
[CentOS5] GeoIP 커널 모듈 빌드 하는 방법 (0) | 2015.02.24 |
[CentOS] CentOS 7 처음 설치 후 설정 (2) | 2014.11.24 |
[CentOS] shell (0) | 2014.11.23 |
최근댓글