[OS-006][기초] 설치 목록과 프로세스·서비스 상태 확인하기 > IT 기술 공유

본문 바로가기
사이트 내 전체검색

IT 기술 공유

[OS-006][기초] 설치 목록과 프로세스·서비스 상태 확인하기

페이지 정보

profile_image
작성자 기술팀장
댓글 0건 조회 170회 작성일 26-09-01 22:34

본문

[이번 수업]

설치된 패키지, 실행 중인 프로세스, 자동 관리되는 서비스의 차이를 실제 상태 조회 명령으로 확인합니다.

[선수지식]

CORE-006의 프로그램·프로세스·서비스 구분과 OS-004의 셸 파이프를 알면 됩니다. 모든 실습은 본인 컴퓨터에서 읽기 전용으로 실행합니다.

[학습목표]

1. 패키지·프로세스·서비스를 구분한다.
2. 운영체제별 설치·실행 상태를 조회한다.
3. 변경 전 확인해야 할 안전 절차를 설명한다.

[핵심개념]

패키지는 프로그램 파일, 버전, 의존성 같은 설치 정보를 묶은 단위입니다. 패키지 관리자는 저장소에서 받아 설치·업데이트·삭제하고 설치 기록을 관리합니다. 설치됐다고 항상 실행 중인 것은 아닙니다.

프로세스는 실행 중인 프로그램 한 개의 모습이며 PID라는 번호, 부모 PID, 상태, 사용 자원을 가집니다. 같은 프로그램을 여러 번 실행하면 여러 PID가 생길 수 있고 종료하면 사라집니다.

서비스는 웹 서버처럼 백그라운드에서 계속 제공할 기능입니다. Windows Service Control Manager, macOS launchd, Linux systemd 같은 관리자가 시작 조건·재시작·의존성·로그를 다룹니다. 서비스도 실행될 때는 프로세스지만 모든 프로세스가 서비스는 아닙니다. OS-010에서 자동 실행 설정 파일을 따로 배웁니다.

관리 순서는 현재 상태 조회 → 변경 계획과 영향 확인 → 한 가지 변경 → 상태·로그 검증 → 필요 시 되돌리기입니다. 이름이 비슷해도 패키지 이름, 실행 파일 이름, 서비스 이름은 다를 수 있습니다.

[따라하기]

자신의 운영체제 블록 하나만 실행하세요. 모두 목록을 읽을 뿐 설치·중지하지 않습니다.

macOS 터미널:
```sh
if command -v brew >/dev/null; then brew list --versions | head -5; else echo "Homebrew 없음"; fi
ps -p $$ -o pid=,ppid=,stat=,command=
launchctl list | head -5
```

Debian/Ubuntu Linux:
```sh
dpkg-query -W -f='${binary:Package} ${Version}\n' | head -5
ps -p $$ -o pid=,ppid=,stat=,command=
systemctl list-units --type=service --state=running --no-pager | head -8
```
Fedora/RHEL은 첫 줄 대신 `dnf list --installed | head -10`을 사용합니다. systemd가 아닌 배포판은 자체 서비스 관리 명령을 확인하세요.

Windows PowerShell:
```powershell
winget list --count 5
Get-Process -Id $PID | Select-Object Id, ProcessName, CPU
Get-Service | Where-Object Status -eq Running | Select-Object -First 5 Status, Name
```

예상 결과는 차례대로 이름·버전 목록, 현재 셸 또는 PowerShell의 PID 한 행, 실행 중 서비스 몇 행입니다. 패키지 도구가 설치되지 않았거나 서비스 조회 권한이 없으면 안내 오류가 날 수 있으며 다른 명령 결과까지 지우지는 않습니다.

[흔한 실수]

- 설치됨, 실행 중, 자동 시작을 같은 상태로 생각합니다.
- 이름을 확인하지 않고 비슷한 서비스를 조작합니다.
- 로그와 의존 서비스를 보지 않고 바로 재시작합니다.
- 패키지 관리자 설치와 수동 파일 복사를 섞습니다.
- 정상 종료를 시도하지 않고 강제 종료부터 사용합니다.

[보안 주의]

조회에는 관리자 권한이 필요 없으므로 `sudo`나 관리자 PowerShell을 쓰지 마세요. 운영 서버나 타인 장비가 아닌 본인 소유 로컬에서만 연습합니다. 설치할 때는 공식 저장소·게시자·서명과 버전을 확인하고 임의 스크립트를 관리자 권한으로 실행하지 않습니다. 보안·네트워크·저장장치 서비스를 함부로 중지하지 말고, 명령 인수에 비밀번호나 토큰을 넣지 마세요. 프로세스 목록이나 감사 로그에 노출될 수 있습니다.

[직접 해볼 과제]

1. 관심 있는 패키지 하나의 설치 버전을 찾아 기록하세요.
2. 현재 셸의 PID와 부모 PID를 확인하고 실행 중 서비스 하나의 이름·상태만 조사하세요.

[확인문제]

1. 패키지가 설치됐지만 프로세스가 없을 수 있는 이유는 무엇인가요?
2. 일반 프로세스와 서비스는 어떤 점이 다른가요?
3. 서비스를 재시작하기 전에 상태·의존성·로그를 봐야 하는 이유는 무엇인가요?

[다음 학습]

OS-007에서는 CPU·메모리·디스크 상태를 읽고 병목의 첫 단서를 찾습니다.

[공식 참고 자료]

- Homebrew 명령 문서: https://docs.brew.sh/Manpage
- WinGet list 문서: https://learn.microsoft.com/en-ca/windows/package-manager/winget/list
- Debian dpkg-query 문서: https://manpages.debian.org/bookworm/dpkg/dpkg-query.1.en.html
- systemctl 공식 문서: https://www.freedesktop.org/software/systemd/man/latest/systemctl.html
- Windows Get-Service 문서: https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-service
- Apple launchd 소스·매뉴얼: https://github.com/apple-oss-distributions/launchd
- POSIX ps 표준: https://pubs.opengroup.org/onlinepubs/9799919799/utilities/ps.html

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : 회사명 / 대표 : 대표자명
주소 : OO도 OO시 OO구 OO동 123-45
사업자 등록번호 : 123-45-67890
전화 : 02-123-4567 팩스 : 02-123-4568
통신판매업신고번호 : 제 OO구 - 123호
개인정보관리책임자 : 정보책임자명

접속자집계

오늘
4,355
어제
6,862
최대
16,772
전체
770,306
Copyright © 소유하신 도메인. All rights reserved.