supervisord를 활용한 다중 프로젝트 프로세스 통합 관리
여러 개의 서비스를 동시에 운영해야 하는 상황에서 개별 터미널로 일일이 실행하는 것은 비효율적입니다. 본 가이드에서는 Python 메인 서비스, 보조 모듈, Celery 스케줄러, 그리고 Spring Boot 애플리케이션을 supervisord 하나로 묶어 관리하는 방법을 살펴봅니다.
설치 및 환경 구성
가상 환경 내부에 supervisord를 설치하면 매번 환경을 활성화해야 하는 번거로움 ...
6월 30일 18:44에 게시됨
리눅스 프로세스 신호 생성 및 처리
터미널 키 입력을 통한 신호 발생
사용자는 키보드 조합을 통해 프로세스에 다양한 신호를 전달할 수 있습니다:
Ctrl+C: SIGINT 신호 전송
Ctrl+\: SIGQUIT 신호로 프로세스 종료
Ctrl+Z: SIGTSTP 신호로 포그라운드 프로세스 일시정지
이러한 신호들은 운영체제가 하드웨어 인터럽트를 소프트웨어적으로 시뮬레이션한 결과로, CPU 대상의 인터럽트와 달리 프로세스에 직 ...
6월 29일 03:40에 게시됨
리눅스 top 명령어 심층 분석
개요top 유틸리티는 실행 중인 시스템의 동적 실시간 뷰를 제공하며, 시스템 요약 정보와 커널이 관리하는 작업 목록을 표시합니다. 출력 형식과 정보 종류는 사용자가 직접 설정할 수 있으며, 설정값은 재부팅 후에도 유지됩니다.top –hv | -abcHimMsS –d 지연시간 –n 반복횟수 –p pid [, pid …]핵심 지표 해석메모리 관련 필드필드의미VIRT가상 메모리 총량. 프로세스가 ...
6월 27일 16:24에 게시됨
리눅스 프로세스 관리의 핵심 구조와 생명주기
프로세스와 스레드의 관계
리눅스에서 프로세스는 자원 할당의 기본 단위이며, 스레드는 실행의 기본 단위이다. 모든 스레드는 프로세스 내에서 동작하며, 같은 주소 공간과 시스템 자원을 공유한다. 커널 입장에서는 스레드도 하나의 독립된 작업 단위(task)로 간주되며, task_struct 구조체로 표현된다.
프로세스의 내부 표현: task_struct
커널은 각 프로세스를 struct ...
6월 6일 23:37에 게시됨
Linux 프로세스 우선순위 제어: nice와 renice 명령어
nice 명령어
nice 명령어는 프로그램을 실행하기 전에 프로세스의 우선순위를 조정할 수 있게 해주는 도구입니다. 조정된 우선순위로 명령어를 실행하며, 명령어를 지정하지 않으면 현재 우선순위 값을 출력합니다.
우선순위 값의 범위는 -20에서 19까지입니다. 값이 작을수록 높은 우선순위를 의미하며, 기본값은 0입니다.
권한 제한: root 사용자는 음수 우선순위 설 ...
5월 26일 21:43에 게시됨