소개
이 랩에서는 Linux 시스템에서 실행 중인 서비스의 상태를 확인하는 방법을 배우게 됩니다. 최신 systemctl status 명령어를 시작으로 다양한 방법을 탐구하고, 직접 실행이 제한된 환경에서도 그 출력과 중요성을 이해할 것입니다.
그 다음, 구식이지만 여전히 유용한 service 명령어를 사용하여 서비스 상태를 확인하는 방법을 배우고, 마지막으로 ps aux 명령어를 사용하여 서비스와 관련된 실행 중인 프로세스를 확인할 것입니다. 이러한 실습 경험을 통해 Linux 에서 서비스를 모니터링하고 관리하는 데 필요한 필수 기술을 습득할 수 있습니다.
systemctl status 를 사용하여 서비스 상태 확인
이 단계에서는 systemctl 명령어를 사용하여 시스템 서비스의 상태를 확인하는 방법을 배우게 됩니다. 서비스는 웹 서버, 데이터베이스 서버 또는 네트워킹 데몬과 같이 시스템에서 실행되는 백그라운드 프로그램입니다.
이 특정 LabEx 환경에서는 (Docker 컨테이너에서 실행되기 때문에) systemctl을 직접 사용할 수 없지만, 실제 Linux 시스템에서 서비스를 관리하려면 작동 방식을 이해하는 것이 중요합니다. 개념을 시뮬레이션하고 일반적인 명령 사용법을 보여드리겠습니다.
Ubuntu 와 같은 최신 배포판에서 흔히 사용되는 systemd를 사용하는 표준 Linux 시스템에서는 서비스가 실행 중인지, 활성 상태인지 또는 실패했는지 확인하기 위해 서비스 이름 뒤에 systemctl status를 사용합니다.
예를 들어, 보안 원격 로그인을 처리하는 ssh 서비스의 상태를 확인하려면 일반적으로 다음을 실행합니다.
systemctl status ssh
출력은 다음과 유사하게 표시됩니다 (정확한 세부 정보는 다를 수 있음):
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since ...
Docs: man:sshd(8)
man:ssh(1)
Main PID: ... (sshd)
Tasks: ... (limit: ...)
Memory: ...
CPU: ...
CGroup: /system.slice/ssh.service
└─... /usr/sbin/sshd -D
...
출력에서 확인해야 할 주요 사항:
Loaded: 서비스 구성이 올바르게 로드되었는지 표시합니다.Active: 서비스의 현재 상태를 나타냅니다 (예:active (running),inactive (dead),failed).Main PID: 서비스의 주 프로세스 ID 입니다.
여기서는 systemctl을 실행할 수 없지만, 다른 Linux 시스템에서 서비스를 관리하려면 이 명령을 아는 것이 중요합니다.
서비스 상태 확인을 시뮬레이션하고 명령 실행을 연습하기 위해 echo를 다시 사용하여 systemctl status에 대해 배웠음을 나타내는 메시지를 출력해 보겠습니다.
터미널에 다음 명령을 입력하십시오.
echo "Learned about systemctl status"
Enter 키를 누르십시오.
이 명령은 systemctl status 사용 개념을 읽고 이해했음을 확인합니다.
Continue를 클릭하여 진행하십시오.
service 명령 출력으로 서비스 확인
이 단계에서는 서비스를 관리하는 데 사용되는 또 다른 명령인 service 명령에 대해 배우게 됩니다. 이 명령은 systemd를 사용하지 않거나 이전 init 시스템과의 호환성을 위해 종종 사용됩니다.
service 명령은 서비스를 시작, 중지, 다시 시작하고 상태를 확인하기 위한 더 간단한 인터페이스를 제공합니다.
service 명령을 사용하여 서비스의 상태를 확인하는 기본 구문은 다음과 같습니다.
service <service-name> status
systemctl과 마찬가지로 <service-name>을 확인하려는 서비스의 실제 이름으로 바꿉니다.
예를 들어, apache2 웹 서버가 설치되어 있고 service 명령으로 관리되는 시스템에서 다음과 같이 상태를 확인할 수 있습니다.
service apache2 status
출력은 일반적으로 서비스가 실행 중인지 여부를 나타냅니다.
다시 말하지만, 이 LabEx 환경에서는 컨테이너화된 특성으로 인해 이 명령을 직접 실행할 수 없지만, 다양한 Linux 시스템에서 작업하려면 service 명령을 이해하는 것이 중요합니다.
service 명령에 대해 배웠음을 확인하려면 echo 명령을 사용하여 확인 메시지를 출력하십시오.
터미널에 다음 명령을 입력하십시오.
echo "Understood service command"
Enter 키를 누르십시오.
이 작업은 이 단계를 완료하고 service 명령에 대해 배웠음을 나타내는 마커 역할을 합니다.
다음 단계로 이동하려면 Continue를 클릭하십시오.
ps aux 로 실행 중인 서비스 프로세스 확인
이 단계에서는 ps aux 명령을 사용하여 관련 프로세스를 찾아 서비스가 실행 중인지 확인하는 방법을 배우게 됩니다. 이는 현재 시스템에서 실행 중인 프로그램을 확인하는 기본적인 방법입니다.
ps 명령은 현재 프로세스의 스냅샷을 보고합니다. aux 옵션은 모든 사용자 (a) 에 대한 프로세스를 표시하고, 터미널에 연결되지 않은 프로세스 (x) 를 포함하며, 사용자 친화적인 형식 (u) 으로 자세한 정보를 표시하는 데 일반적으로 사용됩니다.
서비스가 실행 중일 때는 일반적으로 하나 이상의 관련 프로세스가 있습니다. ps aux를 사용하고 출력을 grep으로 파이프하여 특정 서비스와 관련된 프로세스를 필터링할 수 있습니다.
예를 들어, ssh 서비스와 관련된 프로세스가 있는지 확인하려면 다음을 사용합니다.
ps aux | grep ssh
LabEx 환경에서 이를 시도해 보겠습니다. 터미널 자체가 실행 중인 프로세스라는 것을 알고 있습니다. ps aux를 사용하여 zsh 셸에 대한 프로세스를 찾아보겠습니다.
터미널에 다음 명령을 입력하십시오.
ps aux | grep zsh
Enter 키를 누르십시오.
다음과 유사한 출력을 볼 수 있습니다.
labex ... ... ... ... ? Ss ... ...:.. /usr/bin/zsh
labex ... ... ... ... ? S+ ... ...:.. grep --color=auto zsh
첫 번째 줄은 zsh 프로세스 (터미널 셸) 를 보여주고, 두 번째 줄은 방금 실행한 grep 명령 (또한 프로세스!) 을 보여줍니다.
이 방법 (ps aux | grep <service-name>) 은 특히 systemctl 또는 service 명령을 사용할 수 없거나 충분한 세부 정보를 제공하지 못할 때, 활성 프로세스를 확인하여 서비스가 실제로 실행 중인지 확인하는 강력한 방법입니다.
이 단계를 완료하려면 echo를 사용하여 grep과 함께 ps aux를 사용하는 연습을 했음을 확인하십시오.
다음 명령을 입력하십시오.
echo "Practiced ps aux with grep"
Enter 키를 누르십시오.
Lab 을 완료하려면 Continue를 클릭하십시오.
요약
이 Lab 에서는 다양한 방법을 사용하여 Linux 에서 서비스의 상태를 확인하는 방법을 배웠습니다. systemd를 사용하는 최신 Linux 시스템에서 서비스 상태를 확인하는 표준 방법인 systemctl status 명령을 소개받았지만, Lab 환경으로 인해 직접 실행은 시뮬레이션되었습니다. 또한 이전 service 명령을 사용하여 서비스 상태를 확인하고 ps aux로 프로세스 목록을 검사하여 실행 중인 서비스 프로세스를 확인하는 방법을 배웠습니다. 이러한 단계는 특정 서비스가 Linux 시스템에서 활성 상태로 실행 중인지 확인하기 위한 포괄적인 접근 방식을 제공합니다.



