반응형

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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기