Bazel 시스템은 수명이 긴 서버 프로세스로 구현됩니다. 이렇게 하면
일괄 지향 구현으로는 불가능한 많은 최적화를 수행하는데,
BUILD 파일의 캐싱, 종속 항목 그래프,
도움이 될 것입니다 이를 통해 증분 빌드의 속도를 높이고
build
및 query
같은 다른 명령어가
쿼리 속도가 매우 빠릅니다.
bazel
를 실행하면 클라이언트가 실행됩니다. 클라이언트가 서버를 찾음
출력 기반을 기준으로 하며, 기본적으로 기본 클러스터의 경로에 따라 결정됩니다.
사용자 ID를 사용하여 여러 작업공간에서 빌드하는 경우
출력 베이스가 여러 개 있고 Bazel 서버 프로세스가 여러 개 있습니다.
동일한 워크스테이션의 여러 사용자가 동일한 워크스테이션에 동시에 빌드할 수 있습니다.
출력 기반이 다르기 때문입니다 (사용자 ID가 달라짐). 만약
클라이언트가 실행 중인 서버 인스턴스를 찾을 수 없으면 새 인스턴스를 시작합니다. 서버
비활성 상태가 되면 (기본적으로 3시간이며,
시작 옵션 --max_idle_secs
를 사용하여 수정)
대부분의 경우, 실행 중인 서버가 있다는 사실은 이 점을 염두에 두는 것이 도움이 될 수 있습니다. 예를 들어 여러 디렉터리에서 많은 자동화된 빌드를 수행하는 스크립트를 실행하고, 많은 유휴 서버가 축적되지 않도록 하는 것이 중요합니다. 나 작업을 마치면 명시적으로 종료하여 이 작업을 수행할 수 있습니다. 짧은 시간 제한 기간을 지정하면 됩니다.
Bazel 서버 프로세스의 이름이 ps x
또는 ps -e f
의 출력에 표시됩니다.
as bazel(dirname)
, 여기서 dirname은
작업공간 디렉터리의 루트가 포함된 디렉터리로 이동합니다. 예를 들면 다음과 같습니다.
ps -e f
16143 ? Sl 3:00 bazel(src-johndoe2) -server -Djava.library.path=...
이렇게 하면 주어진 서버에 속한 서버 프로세스를
살펴보겠습니다 (Bazel 서버의 ps
에 대한 다른 옵션을 사용하면 주의하세요.
프로세스의 이름은 java
로만 지정할 수 있습니다.) Bazel 서버는
셧다운 명령어.
bazel
를 실행할 때 클라이언트는 먼저 서버가 적절한지 확인합니다.
version; 없으면 서버가 중지되고 새 서버가 시작됩니다. 이렇게 하면
장기 실행 서버 프로세스의 사용이
관리할 수 있습니다