> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# vesslctl job

> 배치 학습 및 추론 Job을 제출하고, 모니터링하고, 관리하는 방법을 알아봐요.

`job` 명령어를 사용하면 VESSL Cloud에서 배치 컴퓨트 Job을 생성하고 관리할 수 있어요. Job은 지정된 클러스터와 리소스 설정에서 명령어를 실행하고 완료되면 종료돼요.

## list

현재 팀의 Job을 조회해요.

```bash theme={null}
vesslctl job list
```

| 플래그              | 약어   | 설명                                               |
| ---------------- | ---- | ------------------------------------------------ |
| `--state`        | `-s` | Job 상태로 필터링(예: `running`, `succeeded`, `failed`) |
| `--page`         |      | 페이지네이션 페이지 번호                                    |
| `--per-page`     |      | 페이지당 결과 수                                        |
| `--hide-deleted` |      | 취소 및 종료된 Job 숨기기                                 |

**예시:**

```bash theme={null}
vesslctl job list --state running --per-page 20
```

## show

특정 Job의 상세 정보를 표시해요.

```bash theme={null}
vesslctl job show <slug>
```

| 인자     | 설명          |
| ------ | ----------- |
| `slug` | Job의 고유 식별자 |

## create

새 Job을 생성하고 제출해요. 플래그를 사용해 인라인으로 설정하거나 JSON 파일로 제공할 수 있어요.

```bash theme={null}
vesslctl job create --name my-job --resource-spec <slug> --image <image> --cmd "python train.py"
```

| 플래그                   | 약어   | 필수  | 설명                                                  |
| --------------------- | ---- | --- | --------------------------------------------------- |
| `--file`              | `-f` | 아니오 | JSON 설정 파일 경로(인라인 플래그 대신 사용)                        |
| `--name`              | `-n` | 예   | Job 이름                                              |
| `--resource-spec`     | `-r` | 예   | 리소스 스펙 슬러그(클러스터는 자동으로 결정돼요)                         |
| `--image`             | `-i` | 예   | 사용할 컨테이너 이미지                                        |
| `--cmd`               |      | 예   | 실행할 명령어                                             |
| `--env`               | `-e` | 아니오 | `KEY=VALUE` 형식의 환경 변수(반복 사용 가능)                     |
| `--object-volume`     |      | 아니오 | `SLUG:MOUNT_PATH` 형식으로 Object volume 마운트(반복 사용 가능)  |
| `--cluster-volume`    |      | 아니오 | `SLUG:MOUNT_PATH` 형식으로 Cluster volume 마운트(반복 사용 가능) |
| `--image-pull-policy` |      | 아니오 | 이미지 풀 정책: `Always` 또는 `IfNotPresent`                |
| `--tag`               |      | 아니오 | 추가할 태그 값(반복 사용 가능, 미존재 시 자동 생성)                     |

**인라인 플래그 예시:**

```bash theme={null}
vesslctl job create \
  --name my-training-job \
  --resource-spec <spec-name> \
  --image quay.io/vessl-ai/torch:2.9.1-cuda13.0.1-py3.13-slim \
  --cmd "python train.py --epochs 10" \
  --env WANDB_API_KEY=<your-key> \
  --object-volume <volume-slug>:/data
```

<Tip>
  `vesslctl cluster list`와 `vesslctl resource-spec list`로 사용 가능한 클러스터와 GPU 스펙을 확인할 수 있어요.
</Tip>

**JSON 설정 파일 예시:**

```bash theme={null}
vesslctl job create --file job-config.json
```

<Note>
  **가격 요약과 크레딧 잔액.** `job create`는 제출 전에 리소스 스펙, 시간당 비용, 현재 크레딧 잔액, 예상 잔여 시간을 보여줘요. 잔액이 0 이하면 생성이 차단돼요. `vesslctl billing show`로 확인하거나 크레딧을 충전한 다음 다시 시도해 주세요.
</Note>

## terminate

실행 중인 Job을 종료해요.

```bash theme={null}
vesslctl job terminate <slug>
```

| 플래그     | 약어   | 설명           |
| ------- | ---- | ------------ |
| `--yes` | `-y` | 확인 프롬프트 건너뛰기 |

## export

Job의 설정을 JSON으로 내보내요. Job 설정을 재사용하거나 버전 관리할 때 유용해요.

```bash theme={null}
vesslctl job export <slug>
```

출력을 파일로 저장하려면 파이프를 사용해 주세요:

```bash theme={null}
vesslctl job export my-job-abc123 > job-config.json
```

## logs

Job의 로그를 확인해요.

```bash theme={null}
vesslctl job logs <slug>
```

| 플래그        | 약어   | 기본값   | 설명             |
| ---------- | ---- | ----- | -------------- |
| `--limit`  |      | `100` | 반환할 로그 줄 수     |
| `--follow` | `-f` |       | 실시간으로 로그를 스트리밍 |

**예시:**

```bash theme={null}
vesslctl job logs my-job-abc123 --follow
```

## tag

Job의 태그를 관리해요. `job tag attach`와 `job tag detach`에 대한 자세한 내용은 [vesslctl tag](/ko/cli/commands/tag#job-태그-명령어)를 참고하세요.
