>  기사  >  운영 및 유지보수  >  Linux 시스템 시작 및 서비스 관리 요약(정리 및 공유)

Linux 시스템 시작 및 서비스 관리 요약(정리 및 공유)

WBOY
WBOY앞으로
2022-01-27 17:17:412468검색

이 기사에서는 Linux의 시스템 시작 및 서비스 관리에 대한 관련 지식을 제공합니다. 정상 작동 중에는 서버가 거의 다시 시작되지 않지만, 알 수 없는 오류가 발생하거나 사람의 실수가 발생할 경우 비정상적인 시작 상황이 발생할 수 있습니다. .

Linux 시스템 시작 및 서비스 관리 요약(정리 및 공유)

1. 소개

  서버가 정상적으로 동작하는 동안에는 서버가 다시 시작되는 경우가 거의 없으나, 알 수 없는 장애가 발생하거나 휴먼에러가 발생하는 경우 비정상적인 시작이 발생할 수 있습니다. Linux 시스템 시작 프로세스는 상대적으로 낮은 수준의 지식이지만 Linux 시스템에 대한 이해를 심화시키기 위해 이 기사를 요약합니다.

2. Linux 시스템 시작 프로세스

Linux 시스템 시작 및 서비스 관리 요약(정리 및 공유)

2.1 전원 공급 자체 테스트

 서버 호스트가 켜진 후 CPU, 메모리, 그래픽 카드, 하드 디스크 및 기타 장치에 대한 예비 테스트를 수행합니다. 테스트가 성공한 후에는 마더보드 BIOS의 설정에 따라 시스템 제어가 구성된 시작 순서로 전송되며 대부분의 경우 로컬 하드 디스크로 전송됩니다.

2.2 MBR 부팅

  로컬 하드 디스크에서 시스템을 부팅하는 경우 먼저 하드 디스크 첫 번째 섹터의 MBR(마스터 부트 레코드) 설정에 따라 운영 체제 부팅 파일이 포함된 파티션으로 시스템 제어권을 이전합니다. ; 또는 MBR 레코드의 부팅 정보를 기반으로 직접 부팅 메뉴(예: GRUB)를 호출합니다.

2.3 GRUB 메뉴

  Linux 운영 체제의 경우 GRUB(Unified Boot Loader)는 가장 널리 사용되는 다중 시스템 부트 로더 프로그램입니다. 시스템 제어가 GRUB에 전달되면 사용자가 선택할 수 있는 부팅 메뉴가 표시되고 선택한 옵션(또는 기본값)에 따라 Linux 커널 파일이 로드된 다음 시스템 제어가 커널로 이전됩니다. . Centos7은 GRUB2 부트 부트 로더를 사용한다는 점에 유의해야 합니다.

2.4 Linux 커널 로드

  Linux 커널은 미리 컴파일된 특수 바이너리 파일로, 다양한 하드웨어 리소스와 시스템 프로그램 사이에 있으며 리소스 할당 및 스케줄링을 담당합니다. 커널이 시스템 제어권을 인수한 후에는 전체 Linux 운영 체제의 실행 프로세스를 완전히 제어하게 됩니다.
CentoS 시스템에서 기본 커널 파일은 "/boot/vmlinuz-3.10.0-514.el7.x86_64"에 있습니다.

2.5 init 프로세스 초기화

  추가 시스템 부팅 프로세스를 완료하기 위해 Linux 커널은 먼저 시스템의 "/sbin/init" 프로그램을 메모리에 로드하고 이를 실행합니다. init 프로세스는 일련의 완료를 담당합니다. 시스템 초기화 과정을 거쳐 최종적으로 사용자 로그인을 기다립니다.

2.6 시스템 시작 프로세스 요약

  • 하드 디스크나 광학 드라이브 등 시스템을 부팅할 수 있는 첫 번째 장치를 검색합니다.
  • MBR 섹터에 배치된 시작 GRUB 부팅 프로그램을 실행합니다.
  • GRUB 부팅 프로그램은 GRUB를 읽습니다. 구성 파일/ boot/grub2/grub.cfg를 사용하여 커널 및 이미지 파일 시스템의 설정 및 경로 위치를 얻습니다.
  • 커널 및 이미지 파일 시스템을 메모리에 로드
  • 하드웨어 드라이버를 로드하면 커널이 init 프로세스를 로드합니다. 3. init 프로세스와 systemd
3.1 init 프로세스

는 Linux 커널/sbin/init 프로그램에 의해 로드되고 실행됩니다

    init 프로세스는 시스템의 첫 번째 프로세스입니다
  • init 프로세스의 PID 번호는 항상 1
[root@c7-1 ~]#ll /sbin/initlrwxrwxrwx. 1 root root 22 8月  13 21:44 /sbin/init -> ../lib/systemd/systemd
  • 3.2 Centos5/6/7 init 프로세스 비교
  • 3.3 systemdLinux 시스템 시작 및 서비스 관리 요약(정리 및 공유)

    systemd는 Linux 운영 체제용 init 소프트웨어입니다.

      CentOS7은 새로운 systemd를 사용합니다. 기존 SysVinit
    • CentOS7을 실행하는 시작 방법 초기화 프로세스는 /lib/systemd/systemd
    [root@c7-1 ~]#ps -ef
    UID         PID   PPID  C STIME TTY          TIME CMD
    root          1      0  0 8月15 ?       00:00:31 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
    root          2      0  0 8月15 ?       00:00:00 [kthreadd]
    root          4      2  0 8月15 ?       00:00:00 [kworker/0:0H]
    root          6      2  0 8月15 ?       00:00:00 [ksoftirqd/0]
    root          7      2  0 8月15 ?       00:00:00 [migration/0]
    ......
  • 3.4 systemd Unit Type

    Unit TypeExtensionDescription Service.service 시스템 서비스 설명 Socket.socket프로세스 간 통신을 위한 소켓 설명Device.device커널에서 인식하는 장치 파일 설명Mount.mount파일 시스템의 마운트 지점 설명Automount.automount파일 시스템의 자동 마운트 지점 설명Swap.swap 설명 메모리 스왑 장치 또는 스왑 파일Path.path파일 시스템의 파일 또는 디렉터리를 설명합니다.Timer.timer타이머를 설명합니다(cron과 유사한 예약 작업을 구현하는 데 사용됨) )Snapshot.snapshot은 systemd의 상태를 저장하는 데 사용됩니다Scope.scopesystemd의 버스 인터페이스를 사용하여 프로그래밍 방식으로 외부 프로세스를 생성하세요Slice.슬라이스 계층 구조를 통해 구성된 Cgroups 관리 시스템 프로세스 그룹을 설명합니다.Target.target시스템 단위 집합을 설명합니다.

    3.5 运行级别对应的 systemd 目标

    입니다.
    运行级别 systemd 的 target 说明
    0 target 关机状态,使用该级别时将会关闭主机
    1 rescue.target 单用户模式,不需要密码验证即可登录系统,多用于系统维护
    2 multi-user.target 用户定义/域特定运行级别。默认等同于3
    3 multi-user.target 字符界面的完整多用户模式,大多数服务器主机运行在此级别
    4 multi-user.target 用户定义/域特定运行级别。默认等同于3
    5 graphical.target 图形界面的多用户模式,提供了图形桌面操作环境
    6 reboot.target 重新启动,使用该级别时将会重启主机

    3.6 systemd 管理命令 systemctl

    格式:

    systemctl COMMAND name.service		#.service 也可以省略

    Sysvinit 和 Systemd 命令对比

    Sysvinit命令 Systemd命令 含义
    service name start systemctl start name 启动服务
    service name stop systemctl stop name 关闭服务
    service name restart systemctl restart name 重启服务不管当前是启动还是关闭状态
    service name reload systemctl reload name 重新载入服务配置信息而不中断服务
    service name condrestart systemctl condrestart name 运行状态的服务可以重启,不在运行状态无法重启
    service name status systemctl status name 查看服务的运行状态
    chkconfig name on systemctl enable name 设置服务为开机自启动
    chkconfig name off systemctl disable name 设置服务为开机关闭
    chkconfig name systemctl is-enabled name 检查服务是否开机自启
    chkconfig name --add systemctl daemon-reload 创建一个新服务文件,或者变更配置的时候使用

    示例:

    #启动 httpd 服务
    systemctl start httpd 
    #停止 httpd 服务
    systemctl stop httpd
    #重启 httpd 服务
    systemctl restart httpd
    #查看 httpd 服务状态
    systemctl status httpd
    #禁止自动和手动启动服务(可以关闭运行的服务)
    systemctl mask name.service	
    #取消禁止
    systemctl unmask name.service
    #查看某服务当前是否正在运行
    systemctl is-active name.service
    #查看所有服务
    systemctl list-unit-files --type=service
    #查看所有已经激活的服务
    systemctl list-unit-files --type=service | grep enabled
    #列出启动失败的服务
    systemctl --failed --type=service
    或
    systemctl list-units --state failed
    或
    systemctl list-unit-files --state=failed
    #开启 httpd 服务并设置开机自启
    systemctl enable --now httpd.service
    #关闭 httpd 服务并关闭开机自启
    systemctl disable --now httpd.service
    #查看服务的依赖关系
    systemctl list-dependencies name.service
    #杀掉进程
    systemctl kill unitname

    4.总结

      作为一名运维工程,对 Linux 系统服务的管理是基本技能。一个系统在安装完成后免不了要对系统进行优化,关闭不必要的服务,节省系统资源,保护服务器不受网络攻击,这也是运维工作的职责所在,熟练掌握 Linux 系统的底层原理和基本操作,在面对问题的时候才不会茫然不知所措!

    相关推荐:《Linux视频教程

    위 내용은 Linux 시스템 시작 및 서비스 관리 요약(정리 및 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

  • 성명:
    이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제