버튼을 누른 순간부터 어떤 일이 발생했는지에 대한 전체적이고 간략한 수정으로 이 기사를 시작할 것입니다. 힘 버튼을 켜 RHEL 7 명령줄 인터페이스에 로그인 화면이 나타날 때까지
점에 유의하시기 바랍니다:
1. 다른 Linux 배포판에도 약간의 수정을 가하여 동일한 기본 원칙이 적용되며,
2. 다음 설명은 부팅 프로세스에 대한 완전한 설명을 나타내기 위한 것이 아니라 기본 사항일 뿐입니다.
1. NS 우편 (Power On Self Test) 하드웨어 검사를 초기화하고 수행합니다.
2. 때 우편 완료되면 시스템 제어가 첫 번째 단계 부트 로더로 전달되며, 이는 다음 중 하나에 저장됩니다. 하드 디스크 중 하나의 부트 섹터(BIOS 및 MBR을 사용하는 이전 시스템의 경우) 또는 전용(U)EFI 분할.
3. 첫 번째 단계의 부트로더는 두 번째 단계의 부트로더를 로드합니다. 애벌레 (그랜드 통합 부트 로더), 내부에 있는 /boot, 차례로 커널과 초기 RAM 기반 파일 시스템(또는 initramfs, 궁극적으로 실제 루트 파일 시스템을 마운트하는 데 필요한 작업을 수행하는 프로그램과 바이너리 파일이 들어 있습니다.
4. 부팅할 운영 체제와 커널을 선택할 수 있는 시작 화면이 표시됩니다.
5. 커널은 시스템에 연결된 하드웨어를 설정하고 루트 파일 시스템이 마운트되면 다음을 사용하여 프로세스를 시작합니다. PID 1, 차례로 다른 프로세스를 초기화하고 로그인 프롬프트를 표시합니다.
메모: 나중에 그렇게 하고 싶다면 이 프로세스의 세부 사항을 다음을 사용하여 조사할 수 있습니다. dmesg 명령 이 시리즈의 이전 기사에서 설명한 도구를 사용하여 출력을 필터링합니다.
위의 예에서는 잘 알려진 ps 명령 부모 프로세스(또는 이를 시작한 프로세스)가 현재 프로세스의 목록을 표시하려면 시스템 (대부분의 최신 Linux 배포판에서 전환한 시스템 및 서비스 관리자) 시스템 시작 중:
# ps -o ppid, pid, uname, comm --ppid=1.
기억하십시오 -영형 플래그(줄여서 -체재) 의 출력을 표시할 수 있습니다. 추신 에 지정된 키워드를 사용하여 필요에 맞게 사용자 정의된 형식으로 표준 형식 지정자 섹션 남자 추신.
의 출력을 정의하려는 또 다른 경우 추신 기본값을 사용하는 대신 상당한 CPU 및/또는 메모리 부하를 일으키는 프로세스를 찾고 그에 따라 정렬해야 할 때입니다.
# ps aux --sort=+pcpu # %CPU로 정렬(오름차순) # ps aux --sort=-pcpu # %CPU로 정렬(내림차순) # ps aux --sort=+pmem # %MEM 기준 정렬(오름차순) # ps aux --sort=-pmem # %MEM으로 정렬(내림차순) # ps aux --sort=+pcpu,-pmem # %CPU(오름차순) 및 %MEM(내림차순)을 기준으로 정렬 결합
Linux 세계에서 채택보다 더 많은 논란을 일으킨 결정은 거의 없습니다. 시스템 주요 Linux 배포판에 의해 Systemd의 옹호자들은 다음과 같은 사실을 주요 장점으로 꼽습니다.
더 읽어보기:'init'과 'systemd'의 비하인드 스토리
1. Systemd를 사용하면 시스템 시작 중에 더 많은 처리를 병렬로 수행할 수 있습니다(이전 시스템비닛, 프로세스를 하나씩 시작하기 때문에 항상 느린 경향이 있고 하나가 다른 프로세스에 종속되어 있는지 확인한 다음 더 많은 서비스가 시작될 수 있도록 데몬이 시작될 때까지 기다립니다.
2. 실행 중인 시스템에서 동적 리소스 관리로 작동합니다. 따라서 서비스는 부팅 중 정당한 이유 없이 시작되는 대신 필요할 때 시작됩니다(사용하지 않는 경우 시스템 리소스 소모를 방지하기 위해).
3. 이전 버전과의 호환성 시스템비닛 스크립트.
시스템 에 의해 제어됩니다. 시스템 컨트롤 공익 사업. 에서 온 경우 시스템비닛 다음과 같은 배경에 대해 잘 알고 있을 것입니다.
다음 표는 이러한 레거시 도구의 사용과 시스템 컨트롤:
레거시 도구 | Systemctl에 해당 | 설명 |
서비스 이름 시작 | systemctl 시작 이름 | 시작 이름(이름은 서비스) |
서비스 이름 중지 | systemctl 중지 이름 | 중지 이름 |
서비스 이름 condrestart | systemctl try-restart 이름 | 이름 다시 시작(이미 실행 중인 경우) |
서비스 이름 다시 시작 | systemctl 재시작 이름 | 다시 시작 이름 |
서비스 이름 다시 로드 | systemctl 다시 로드 이름 | name에 대한 구성을 다시 로드합니다. |
서비스 이름 상태 | systemctl 상태 이름 | 이름의 현재 상태를 표시합니다. |
서비스 – 모든 상태 | 시스템 컨트롤 | 모든 현재 서비스의 상태를 표시합니다. |
chkconfig 이름 켜기 | systemctl 활성화 이름 | 단위 파일(심볼릭 링크가 가리키는 파일)에 지정된 대로 시작할 때 이름이 실행되도록 합니다. 부팅 시 서비스가 자동으로 시작되도록 활성화 또는 비활성화하는 프로세스는 /etc/systemd/system 디렉토리 내부에 기호 링크를 추가하거나 제거하는 것으로 구성됩니다. |
chkconfig 이름 끄기 | systemctl 비활성화 이름 | 단위 파일(심볼릭 링크가 가리키는 파일)에 지정된 대로 시작할 때 이름이 실행되지 않도록 합니다. |
chkconfig – 목록 이름 | systemctl이 활성화된 이름 | 이름(특정 서비스)이 현재 활성화되어 있는지 확인 |
chkconfig – 목록 | systemctl – 유형 = 서비스 | 모든 서비스를 표시하고 활성화 또는 비활성화 여부를 알려줍니다. |
지금 종료 -h | systemctl 전원 끄기 | 기계 전원 끄기(중지) |
지금 종료 -r | systemctl 재부팅 | 시스템 재부팅 |
시스템 또한 단위(서비스, 마운트 지점, 장치 또는 네트워크 소켓일 수 있음) 및 대상(이는 systemd가 동시에 여러 관련 프로세스를 시작하는 방법과 런레벨과 동등하지는 않지만 고려될 수 있습니다. 입력 SysVinit 기반 시스템.
프로세스 관리와 관련된 기타 작업에는 다음 기능이 포함되지만 이에 국한되지는 않습니다.
이것은 다음을 통해 달성됩니다. 르니스 하나 이상의 실행 중인 프로세스의 스케줄링 우선순위를 변경하는 유틸리티. 간단히 말해서 스케줄링 우선 순위는 커널(버전에 존재)을 허용하는 기능입니다. => 2.6) 할당된 실행 우선 순위에 따라 시스템 리소스를 할당합니다. -20 ~을 통해 19) 주어진 프로세스.
의 기본 구문 르니스 다음과 같다:
# renice [-n] 우선순위 [-gpu] 식별자.
위의 일반 명령에서 첫 번째 인수는 사용할 우선 순위 값이고 다른 인수는 프로세스로 해석될 수 있습니다. 아이디 (기본 설정), 프로세스 그룹 ID, 사용자 ID 또는 사용자 이름. 일반 사용자(루트 제외)는 자신이 소유한 프로세스의 스케줄링 우선순위만 수정할 수 있으며 niceness 수준만 높일 수 있습니다(즉, 시스템 리소스를 덜 차지함을 의미).
보다 정확하게 말하면 프로세스를 종료하면 실행을 정상적으로 완료하도록 신호를 보낼 수 있습니다(SIGTERM=15) 또는 즉시(시그킬=9) 통해 kill 또는 pkill 명령.
이 두 도구의 차이점은 전자가 특정 프로세스를 종료하거나 종료하는 데 사용된다는 것입니다. 프로세스 그룹을 모두 처리하는 반면 후자는 이름 및 기타 항목을 기반으로 동일한 작업을 수행할 수 있습니다. 속성.
게다가, 피킬 함께 제공됩니다 pgrep, pkill을 사용해야 하는 영향을 받는 PID를 보여줍니다. 예를 들어, 실행하기 전에:
# pkill -u 가카네파.
어떤 것들이 있는지 한 눈에 확인하는 것이 유용할 수 있습니다. PID 에게 소유 된 가카네파:
# pgrep -l -u 가카네파.
기본적으로 둘 다 죽이다 그리고 피킬 보내다 시그텀 프로세스에 신호를 보냅니다. 위에서 언급했듯이 이 신호는 무시할 수 있습니다(프로세스가 실행을 완료하는 동안 또는 좋은), 따라서 타당한 이유로 실행 중인 프로세스를 심각하게 중지해야 하는 경우 다음을 수행해야 합니다. 를 지정 시그킬 명령줄에서 신호:
# kill -9 identifier # 프로세스 또는 프로세스 그룹을 종료합니다. # kill -s SIGNAL 식별자 # Idem. # pkill -s SIGNAL identifier # 이름이나 다른 속성으로 프로세스를 종료
이 기사에서 우리는 기본 사항에 대해 설명했습니다. 부팅 프로세스 안에 RHEL 7 시스템을 살펴보고 일반 유틸리티 및 시스템별 명령을 사용하여 프로세스를 관리하는 데 도움이 되는 몇 가지 도구를 분석했습니다.
이 목록은 이 주제의 모든 세부 사항을 다루기 위한 것이 아니므로 아래 의견 양식을 사용하여 이 문서에 원하는 도구와 명령을 자유롭게 추가하십시오. 질문 및 기타 의견도 환영합니다.