Skip to content

Systemd

  • Published on
    서버 로그에 accept4 failed (24: Too many open files)가 찍히고 ulimit -n을 올렸는데도 그대로입니다. 이 증상 뒤에는 서로 독립적인 세 가지 한계가 있습니다. 프로세스별 RLIMIT_NOFILE, 시스템 전역 fs.file-max, 그리고 systemd 서비스의 LimitNOFILE이 셸의 ulimit 설정을 완전히 무시한다는 사실입니다. /proc/PID/limits로 실제 적용값을 확인하는 법, fd를 소켓·파일·파이프로 세분해 무엇이 먹는지 찾는 법, inotify와 epoll은 별개의 한계라는 점, 그리고 진짜 원인인 fd 누수를 확인하는 법을 정리합니다.
  • Published on
    2026년 6월 19일 릴리스된 systemd v261은 유닛을 fleet의 지정 비율에서만 켜는 ConditionFraction=, 머신 태그로 링을 나누는 ConditionMachineTag=, 그리고 9개 퍼블릭 클라우드의 인스턴스 메타데이터를 시스템 자격증명으로 끌어오는 IMDS 서브시스템을 새로 실었고, libc를 제외한 모든 외부 라이브러리 링크를 dlopen()으로 바꾸는 다년 작업을 끝냈습니다. 이 글은 프로젝트의 raw NEWS 파일과 v261 태그의 man 페이지 소스를 직접 읽고 각 변화가 운영에서 실제로 무엇을 바꾸는지 정리합니다 — 그리고 ConditionFraction이 카나리 배포 시스템이 아닌 이유, IMDS 잠금 모드가 cloud-init과 충돌하는 지점, libm 링크 보장이 사라지며 rsyslog가 시작 시 크래시한 사례 같은 함정도 함께 다룹니다. udev DB v0 제거로 v247 미만에서의 라이브 업그레이드가 막히고, TPM 측정값 변경이 attestation 기대값을 바꾸는 등 조용히 무는 비호환 변경은 체크리스트로 담았습니다.
  • Published on
    매일 사용하지만 대부분 엔지니어가 블랙박스로 여기는 Linux 부팅 과정. 이 글은 전원이 들어온 순간부터 로그인 프롬프트까지의 여정을 처음부터 해부합니다. x86 real mode부터 protected mode와 long mode까지의 CPU 전환, BIOS vs UEFI, Secure Boot, MBR vs GPT, GRUB의 3단계(stage 1/1.5/2), 커널 압축 해제와 초기화, 왜 initramfs가 필요한지, systemd의 병렬 서비스 시작과 의존성 DAG, socket activation, ARM과 Raspberry Pi의 독특한 부팅, TPM과 Measured Boot까지 — Linux가 어떻게 시작하는지 제대로 이해하고 싶은 엔지니어를 위한 종합 가이드입니다.