ulimit 설정으로 서버 프로세스 제한 걸 때 알아야 할 것들

서버 운영에서 “ulimit”는 단순한 쉘 명령이 아니라, 커널 자원 관리와 서비스 안정성을 잇는 핵심 관문이다. 잘못 설정하면 “Too many open files”나 예기치 않은 프로세스 종료가 잦아지고, 반대로 과도하게 풀면 장애 전파 범위가 커진다. 이 글은 ulimit의 동작 원리부터 사용자·서비스별 영구 설정, systemd와 PAM의 연결, 커널 한도와의 관계, 그리고 현장에서 자주 겪는 함정과 해결책까지 체계적으로 정리한다. … Read more

ZIP, TAR, GZ 차이 정확히 설명해봄 + 실무 압축 명령어 모음

ZIP은 ‘압축+아카이브’를 하나로 처리해 개별 파일 접근이 쉬운 포맷이고, TAR는 아카이브만 담당하며 GZ는 단일 파일 압축 포맷이다. 실무에선 TAR에 GZ를 결합한 tar.gz가 권장되는 경우가 많다. 각 포맷의 구조·장단점과 리눅스·macOS·윈도우 명령어 예제를 한 번에 정리했다.

kill -9만 쓰면 안 되는 이유와 프로세스 안전하게 종료하는 법

리눅스에서 프로세스를 강제로 종료할 때 흔히 사용하는 명령이 kill -9다. 하지만 이 명령은 무조건적인 종료를 유도해 데이터 손상이나 시스템 불안정을 초래할 수 있다. 이 글에서는 kill -9의 문제점과 안전하게 프로세스를 종료하는 올바른 방법을 단계별로 정리

/dev/null은 왜 존재할까? 쓰레기통이 아니라 필수 기능

명령어 출력과 로그를 조용히 처리하고, 벤치마크·백그라운드 작업·보안까지 돕는 장치가 있다. /dev/null은 단순 쓰레기통이 아니라 읽으면 EOF, 쓰면 즉시 폐기하는 특수 장치로, 리눅스 운영의 기본기이자 성능·안정성 도구다.

리눅스에서 서비스 자동 재시작 설정하는 3가지 방법 (systemd, supervisor, bash)

리눅스 서버에서 서비스가 예기치 않게 중단되는 상황은 빈번하다. 이를 방지하려면 자동 재시작 설정이 필수다. 이 글에서는 systemd, supervisor, bash 스크립트를 활용해 서비스 장애 발생 시 자동으로 복구하는 3가지 실무 방법을 구체적으로 정리한다. 서비스 자동 재시작이 필요한 이유 리눅스 서버는 장시간 운영되는 만큼 네트워크 오류, 메모리 누수, 일시적 예외 등으로 프로세스가 멈출 수 있다. 이를 수동으로 … Read more