# task-1948: 블로그 글 생성 좀비 프로세스 감지 수정

## 현상
- blog-write-status.json이 "running" 상태인데 실제 프로세스가 죽어있음
- task-1932에서 카카오 정제용 좀비 감지(PID alive 체크)를 추가했으나, 블로그 글 생성에는 적용 안 됨
- lock 파일에 PID가 없고 threadId만 있어서 PID 기반 감지 불가

## 수정 항목

### 1. blog-write-lock.json에 PID 저장
- 파일: `dashboard/routes_post.py` 또는 `dashboard/blog_writer.py`
- 글 생성 시작 시 lock 파일에 `pid` 필드 추가 (subprocess PID 또는 os.getpid())
- threadId만으로는 프로세스 생존 확인 불가

### 2. 글 생성 status API에 좀비 감지 추가
- 파일: `dashboard/routes_post.py` (또는 routes_get.py — status GET 핸들러)
- `/api/naver-blog/write/status` 응답 시:
  - lock 파일에서 PID 읽기
  - `os.kill(pid, 0)`으로 alive 체크
  - status가 "running"인데 PID 죽어있으면 → status를 "failed"로 자동 전환
  - "프로세스 비정상 종료" 메시지 포함
- task-1932에서 카카오 정제에 구현한 것과 동일한 패턴 적용

### 3. 타임아웃 기반 폴백 감지
- PID 없는 구버전 lock 파일 대응
- startedAt 기준으로 일정 시간(예: 30분) 경과 + progress 변화 없으면 → "failed" 전환

## 검증 시나리오
1. 글 생성 시작 → lock 파일에 pid 필드 존재 확인
2. 프로세스 정상 실행 중 → status "running" + pid_alive=true
3. 프로세스 강제 종료 후 status 조회 → "failed" 자동 전환 확인
4. 30분 경과 + progress 정체 → "failed" 자동 전환 확인

## 프로젝트
- insuwiki

## 레벨
- normal
