이 기사에서는 Linux의 시스템 시작 및 서비스 관리에 대한 관련 지식을 제공합니다. 정상 작동 중에는 서버가 거의 다시 시작되지 않지만, 알 수 없는 오류가 발생하거나 사람의 실수가 발생할 경우 비정상적인 시작 상황이 발생할 수 있습니다. .
서버가 정상적으로 동작하는 동안에는 서버가 다시 시작되는 경우가 거의 없으나, 알 수 없는 장애가 발생하거나 휴먼에러가 발생하는 경우 비정상적인 시작이 발생할 수 있습니다. Linux 시스템 시작 프로세스는 상대적으로 낮은 수준의 지식이지만 Linux 시스템에 대한 이해를 심화시키기 위해 이 기사를 요약합니다.
서버 호스트가 켜진 후 CPU, 메모리, 그래픽 카드, 하드 디스크 및 기타 장치에 대한 예비 테스트를 수행합니다. 테스트가 성공한 후에는 마더보드 BIOS의 설정에 따라 시스템 제어가 구성된 시작 순서로 전송되며 대부분의 경우 로컬 하드 디스크로 전송됩니다.
로컬 하드 디스크에서 시스템을 부팅하는 경우 먼저 하드 디스크 첫 번째 섹터의 MBR(마스터 부트 레코드) 설정에 따라 운영 체제 부팅 파일이 포함된 파티션으로 시스템 제어권을 이전합니다. ; 또는 MBR 레코드의 부팅 정보를 기반으로 직접 부팅 메뉴(예: GRUB)를 호출합니다.
Linux 운영 체제의 경우 GRUB(Unified Boot Loader)는 가장 널리 사용되는 다중 시스템 부트 로더 프로그램입니다. 시스템 제어가 GRUB에 전달되면 사용자가 선택할 수 있는 부팅 메뉴가 표시되고 선택한 옵션(또는 기본값)에 따라 Linux 커널 파일이 로드된 다음 시스템 제어가 커널로 이전됩니다. . Centos7은 GRUB2 부트 부트 로더를 사용한다는 점에 유의해야 합니다.
Linux 커널은 미리 컴파일된 특수 바이너리 파일로, 다양한 하드웨어 리소스와 시스템 프로그램 사이에 있으며 리소스 할당 및 스케줄링을 담당합니다. 커널이 시스템 제어권을 인수한 후에는 전체 Linux 운영 체제의 실행 프로세스를 완전히 제어하게 됩니다.
CentoS 시스템에서 기본 커널 파일은 "/boot/vmlinuz-3.10.0-514.el7.x86_64"에 있습니다.
추가 시스템 부팅 프로세스를 완료하기 위해 Linux 커널은 먼저 시스템의 "/sbin/init" 프로그램을 메모리에 로드하고 이를 실행합니다. init 프로세스는 일련의 완료를 담당합니다. 시스템 초기화 과정을 거쳐 최종적으로 사용자 로그인을 기다립니다.
[root@c7-1 ~]#ll /sbin/initlrwxrwxrwx. 1 root root 22 8月 13 21:44 /sbin/init -> ../lib/systemd/systemd
3.3 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] ......
Description | 입니다. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
시스템 서비스 설명 | Socket | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
프로세스 간 통신을 위한 소켓 설명 | Device | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
커널에서 인식하는 장치 파일 설명 | Mount | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
파일 시스템의 마운트 지점 설명 | Automount | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
파일 시스템의 자동 마운트 지점 설명 | Swap | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
설명 메모리 스왑 장치 또는 스왑 파일 | Path | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
파일 시스템의 파일 또는 디렉터리를 설명합니다. | Timer | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
타이머를 설명합니다(cron과 유사한 예약 작업을 구현하는 데 사용됨) ) | Snapshot | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
은 systemd의 상태를 저장하는 데 사용됩니다 | Scope | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
systemd의 버스 인터페이스를 사용하여 프로그래밍 방식으로 외부 프로세스를 생성하세요 | Slice | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
계층 구조를 통해 구성된 Cgroups 관리 시스템 프로세스 그룹을 설명합니다. | Target | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
시스템 단위 집합을 설명합니다. |
运行级别 | 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 | 重新启动,使用该级别时将会重启主机 |
格式:
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
作为一名运维工程,对 Linux 系统服务的管理是基本技能。一个系统在安装完成后免不了要对系统进行优化,关闭不必要的服务,节省系统资源,保护服务器不受网络攻击,这也是运维工作的职责所在,熟练掌握 Linux 系统的底层原理和基本操作,在面对问题的时候才不会茫然不知所措!
相关推荐:《Linux视频教程》
위 내용은 Linux 시스템 시작 및 서비스 관리 요약(정리 및 공유)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!