# Android에서 프로세스 라이브 상태 유지
OpenClaw는 서버로 동작하므로 Android의 전원 관리 및 프로세스 종료 기능이 안정적인 운영을 방해할 수 있습니다. 이 가이드에서는 프로세스를 안정적으로 유지하기 위한 모든 설정을 다룹니다.
## 개발자 옵션 활성화
1. **설정** > **휴대전화 정보** (또는 **디바이스 정보**)
2. **빌드 번호**를 7번 연속 탭
3. "개발자 모드가 활성화되었습니다" 메시지 확인
4. 잠금화면 비밀번호가 설정되어 있으면 입력
> 일부 기기에서는 **설정** > **휴대전화 정보** > **소프트웨어 정보** 안에 빌드 번호가 있습니다.
## 충전 중 화면 켜짐 유지 (Stay Awake)
1. **설정** > **개발자 옵션** (위에서 활성화한 메뉴)
2. **화면 켜짐 유지** (Stay awake) 옵션을 **ON**
3. 이제 USB 또는 무선 충전 중에는 화면이 자동으로 꺿지지 않습니다
> 충전기를 분리하면 일반 화면 꺿짐 설정이 적용됩니다. 서버를 장시간 운영할 때는 충전기를 연결해두세요.
## 충전 제한 설정 (필수)
폰을 24시간 충전 상태로 두면 배터리가 펽창할 수 있습니다. 최대 충전량을 80%로 제한하면 배터리 수명과 안전성이 크게 향상됩니다.
- **삼성**: **설정** > **배터리** > **배터리 보호** → **최대 80%** 선택
- **Google Pixel**: **설정** > **배터리** > **배터리 보호** → ON
> 제조사마다 메뉴 이름이 다를 수 있습니다. "배터리 보호" 또는 "충전 제한"으로 검색하세요. 해당 기능이 없는 기기에서는 충전기를 수동으로 관리하거나 스마트 플러그를 활용할 수 있습니다.
## 배터리 최적화에서 Termux 제외
1. Android **설정** > **배터리** (또는 **배터리 및 기기 관리**)
2. **배터리 최적화** (또는 **앱 절전**) 메뉴 진입
3. 앱 목록에서 **Termux** 를 찾아서 **최적화하지 않음** (또는 **제한 없음**) 선택
> 메뉴 경로는 제조사(삼성, LG 등)와 Android 버전에 따라 다를 수 있습니다. "배터리 최적화 제외" 또는 "앱 절전 해제"로 검색하면 해당 기기의 정확한 경로를 찾을 수 있습니다.
## Phantom Process Killer 비활성화 (Android 12+)
Android 12 이상에는 **Phantom Process Killer**라는 기능이 포함되어 있어, 백그라운드 프로세스를 자동으로 종료합니다. 이로 인해 Termux에서 실행 중인 `openclaw gateway`, `sshd`, `ttyd` 등이 예고 없이 종료될 수 있습니다.
## 증상
Termux에서 다음과 같은 메시지가 보이면 Android가 프로세스를 강제 종료한 것입니다:
```
[Process completed (signal 9) - press Enter]
```
Signal 9 (SIGKILL)는 어떤 프로세스도 가로채거나 차단할 수 없습니다 — Android가 OS 수준에서 종료한 것입니다.
## 요구사항
- **Android 12 이상** (Android 11 이하는 해당 없음)
- **Termux**에 `android-tools` 설치 (OpenClaw on Android에 포함)
## 1단계: Wake Lock 활성화
알림 바를 내려서 Termux 알림을 찾으세요. **Acquire wakelock**을 탭하면 Android가 Termux를 중단시키는 것을 방지할 수 있습니다.
## 3단계: ADB 설치 (아직 설치하지 않은 경우)
Termux에서 `android-tools`를 설치합니다:
```bash
pkg install -y android-tools
```
> OpenClaw on Android를 설치했다면 `android-tools`가 이미 포함되어 있습니다.
## 4단계: ADB 페어링
1. **무선 디버깅** 설정에서 **페어링 코드로 기기 페어링** (Pair device with pairing code) 탭
2. **Wi-Fi 페어링 코드**와 **IP 주소 및 포트**가 표시된 다이얼로그가 나타남
3. Termux에서 화면에 표시된 포트와 코드를 사용하여 페어링 명령을 실행합니다:
```bash
adb pair localhost:<페어링_포트> <페어링_코드>
```
예시:
```bash
adb pair localhost:39555 269556
```
`Successfully paired`가 표시되면 성공입니다.
## 5단계: ADB 연결
페어링 후 **무선 디버깅** 메인 화면으로 돌아가세요. 상단에 표시된 **IP 주소 및 포트**를 확인합니다 — 이 포트는 페어링 포트와 다릅니다.
Termux에서 메인 화면에 표시된 포트로 연결합니다:
```bash
adb connect localhost:<연결_포트>
```
예시:
```bash
adb connect localhost:35541
```
`connected to localhost:35541`이 표시되면 성공입니다.
> 페어링 포트와 연결 포트는 다릅니다. `adb connect`에는 무선 디버깅 메인 화면에 표시된 포트를 사용하세요.
## 6단계: Phantom Process Killer 비활성화
다음 명령을 실행하여 Phantom Process Killer를 비활성화합니다:
```bash
adb shell "settings put global settings_enable_monitor_phantom_procs false"
```
설정이 적용되었는지 확인합니다:
```bash
adb shell "settings get global settings_enable_monitor_phantom_procs"
```
출력이 `false`이면 Phantom Process Killer가 성공적으로 비활성화된 것입니다.
## 참고 사항
- 이 설정은 **재부팅해도 유지**됩니다 — 한 번만 하면 됩니다
- 이 과정을 완료한 후 무선 디버깅을 켜둘 필요는 없습니다. 꺼도 됩니다
- 일반 앱 동작에는 영향을 주지 않습니다 — Termux의 백그라운드 프로세스가 종료되는 것만 방지합니다
- 폰을 초기화하면 이 과정을 다시 수행해야 합니다
## 추가 참고
일부 제조사(삼성, 샤오미, 화웨이 등)는 자체적으로 공격적인 배터리 최적화를 적용하여 백그라운드 앱을 종료시킬 수 있습니다. Phantom Process Killer를 비활성화한 후에도 프로세스가 종료되는 경우, [dontkillmyapp.com](https://dontkillmyapp.com)에서 기기별 가이드를 확인하세요.