---
title: "명령 실행 문제 해결"
description: "Alpacon 명령어가 거부되거나 보류되고, 실행 중 멈춘 이유를 확인합니다. 실제 오류 메시지와 종료 코드를 조치 방법에 맞춰 살펴보세요. 작업 세션 권한과 실행 목적, 환경 변수, 파일 실행 조건을 점검하고 같은 작업의 상태를 확인한 뒤 재시도해 중복 실행을 피하세요."
---

> Full documentation index: https://docs.alpacax.com/llms.ko.txt

# 명령 실행 문제 해결

[**명령 기록**](/use/audit/events/commands/)에서 해당 작업부터 확인하세요. 다시 제출하기 전에 실행 여부를 확인해야 합니다.

## 종료 코드

| 종료 코드 | 의미 |
| --- | --- |
| 1 | 일반 오류. 응답 없음, 오류, 취소, CLI 대기 시간 초과, 명령줄에 포함된 자격 증명 등 |
| 2 | CLI 사용법 오류 |
| 3 | 작업 세션 접근 거부 |
| 4 | 명령어 또는 sudo 승인 대기 |
| 6 | 반려되었거나 요청 만료 전에 승인받지 못함 |
| 7 | 워크스페이스에서 실행 목적을 요청함 |
| 원격 종료 코드 | 완료된 명령어의 결과. 124는 서버 실행 시간 제한 도달 |

`exec logs`는 아직 실행 중인 명령어를 조회해도 종료 코드 0을 반환합니다. 종료 코드와 함께 상태를 읽으세요. 조회 결과별 동작은 [명령 실행하기](/use/work-sessions/commands/run/)를 참고하세요. 종료 코드 5는 서버에서 진행 중인 작업 때문에 다른 CLI 작업이 거부됐다는 뜻입니다. exec에는 쓰이지 않습니다.

## 실행 전 거부

| 메시지 | 조치 |
| --- | --- |
| `line: Ensure this field has no more than 2048 characters.` | 명령줄을 줄이거나 검증된 파일 실행 사용 |
| `--purpose is limited to 2000 characters; the server refuses a longer one` | 목적을 2000자 이내로 줄이기 |
| `--purpose requires a value describing what this command is for` | 비어 있지 않은 목적 전달 |
| `server rejected this command—the command line carries a credential` (`command_inline_credential`) | 자격 증명을 `--env`로 전달 |
| `command_dangerous_env`(별도 CLI 메시지 없음) | 거부된 환경 변수 제거 |
| `invalid --env argument: use --env=KEY or --env=KEY=VALUE` | 셸에 이미 설정된 변수는 `--env=KEY`로 전달. 값을 직접 지정하려면 `--env=KEY=VALUE` 사용 |
| `target server is not in this session` (`work_session_server_not_allowed`) | 세션에 포함된 서버를 선택하거나 대상 서버 접근 요청 |

콘솔에서는 같은 오류를 별도 문구로 표시합니다. CLI에서 `--output json`을 쓰면 오류 코드를 확인할 수 있습니다.

다른 작업 세션 거부 사유는 [게이트 에러](/reference/cli/work-session/#게이트-에러)를 참고하세요.

## 보류와 반려

**승인 대기** 상태의 명령어는 사람의 결정을 기다립니다. 워크스페이스에서 목적을 요청하면 `alpacon exec purpose JOB_ID PURPOSE`로 같은 작업에 답하세요.

**반려됨** 상태라면 감사 기록의 상세 패널에서 **거절 이유** 항목을 확인하세요. [거부 사유 확인](/use/audit/events/commands/#거부-사유-확인)을 참고하세요. 보류된 명령어는 승인되면 자동으로 실행되므로, 기다리는 동안 중복 제출하지 마세요.

| 메시지 | 조치 |
| --- | --- |
| `This command carries a script body; resubmit the script as a file execution` (`use_file_execution`) | 워크스페이스 규칙이 명령줄에 넣은 스크립트를 차단하면 요청은 접수되지만 명령어는 **반려됨** 상태가 됩니다. 명령이 반려된 서버에만 `alpacon exec --file …`로 [파일 실행](/use/work-sessions/commands/file-execution/)을 다시 요청하세요. 대상 서버는 모두 파일 실행을 지원해야 합니다. 여러 서버 중 한 서버라도 지원하지 않으면 `file_exec_unsupported_agent` 오류로 요청이 거부됩니다. |

## 실행 중단과 시간 초과

| 메시지 | 조치 |
| --- | --- |
| `agent never acknowledged the command (likely disconnected)` | 서버 연결과 작업 기록을 확인한 뒤 재제출 여부 판단. 서버가 오프라인이면 명령어가 대기열에 남을 수 있음 |
| `command failed: [agent_timeout] agent acknowledged the command but did not return a result in time (status=stuck)` | 포그라운드 exec는 10분 후 종료 코드 1로 끝나지만 서버에서는 최대 30분까지 실행 가능. 같은 작업을 `exec logs`로 확인하고, 이후 약 10분을 넘길 수 있는 작업에는 `--detach` 사용 |
| `Command timed out after 30m0s` | 서버의 30분 제한에 도달. 작업을 나눈 뒤 재시도 |
| `Error: [client_timeout] CLI gave up waiting for the server to report a result` | CLI가 대기만 끝냈으며 명령어는 취소되지 않음. 같은 작업을 확인한 뒤 재시도 |

## 파일 실행 거부

| 메시지 | 조치 |
| --- | --- |
| `the server refused the file: it is empty, and a verified file needs content to hash` (`file_exec_empty_content`) | 내용이 있는 스크립트 전달 |
| `the server refused the file: a verified file is limited to 65536 bytes (64 KB)` (`file_exec_content_too_large`) | 스크립트를 64 KB 이하로 줄이기 |
| `the interpreter, the path and the arguments together exceed the server's command line ceiling` (`file_exec_line_too_long`) | 인터프리터, 경로, 인수를 합쳐 2048자 이내로 줄이기 |
| `the server refused the file path or the interpreter: both must be absolute paths starting with /` (`file_exec_invalid_path`) | 두 경로 모두 절대 경로로 지정 |
| `the server refused the request: environment variables are not allowed on the file lane` (`file_exec_env_not_allowed`) | `--env`를 빼고 스크립트가 서버에서 필요한 값을 읽도록 작성 |
| `the server refused the reuse proposal: a reuse duration must be 1 to 366 days` (`file_exec_invalid_reuse_days`) | `--reuse-days`에 1~366을 지정하거나 옵션 생략 |
| `the server refused the reuse proposal: this workspace's file execution grant ceiling is shorter than the duration proposed` (`file_exec_reuse_exceeds_max`) | 워크스페이스 상한 이내로 줄이거나 `--reuse-days` 생략 |
| `this deployment has the command assessor disabled, so '<server>' cannot run a verified file` (`file_exec_assessor_disabled`) | 관리자에게 AI 검토 활성화 요청 |
| `the agent on '<server>' does not offer the file lane; it needs Alpamon 2.8.3 or newer on a platform that has the file lane` (`file_exec_unsupported_agent`) | 관리자에게 서버 지원 여부 확인 요청. CLI 참조 확인 |
| `the file changed after it was verified, so the agent refused to run it` (`file_hash_mismatch`) | 실행할 내용을 검토해 제출하고 실행 전까지 서버 파일을 그대로 유지 |
| `this server's platform cannot run a file execution safely` (`file_exec_unsupported`) | 검증된 파일 실행을 지원하는 서버 사용 |
| `the file is larger than the agent will run` (`file_too_large`) | 서버 파일을 확인하고 내용이 같은 스크립트를 64 KB 입력 제한 안에서 제출 |

입력 방식은 [검증된 파일 실행](/reference/cli/exec/#검증된-파일-실행)을 참고하세요.

## 명령어 취소

CLI에는 명령어를 취소하는 명령이 없습니다. 콘솔의 [**명령 기록**](/use/audit/events/commands/)에서 **예약 취소**를 누르면 서버에 전달되지 않은 명령어를 취소할 수 있습니다. 이 버튼은 해당 명령어를 취소할 수 있는 동안에만 표시됩니다.

| 메시지 | 조치 |
| --- | --- |
| "이 명령은 이미 서버로 전송되었어요." (`event_command_already_sent`) | 이미 전달된 명령어는 취소로 회수할 수 없으므로 결과 확인 |
| "방화벽 규칙을 적용하는 명령은 취소할 수 없어요." (`event_command_not_cancellable`) | 취소 대신 방화벽 작업과 결과 확인 |

Source: https://docs.alpacax.com/ko/use/work-sessions/commands/troubleshooting/
