Sistem Bazel diimplementasikan sebagai proses server yang berumur panjang. Hal ini memungkinkan
untuk melakukan banyak pengoptimalan yang tidak mungkin dilakukan
dengan implementasi berorientasi batch,
seperti pembuatan cache file BUILD, grafik dependensi, dan
membuatnya lebih maju. Hal ini meningkatkan kecepatan build inkremental, dan memungkinkan
perintah yang berbeda, seperti build
dan query
untuk berbagi cache yang sama
paket yang dimuat, membuat kueri sangat cepat.
Saat menjalankan bazel
, Anda sedang menjalankan klien. Klien menemukan server
berdasarkan basis output, yang secara default ditentukan oleh jalur basis
ruang kerja dan id pengguna Anda, jadi jika Anda membuat beberapa ruang kerja,
Anda akan memiliki beberapa basis {i>output<i}
dan dengan demikian beberapa proses server Bazel.
Beberapa pengguna di workstation yang sama
dapat membangun secara serentak di
Workspace karena basis output-nya akan berbeda (ID pengguna berbeda). Jika
klien tidak dapat menemukan instance server yang berjalan, instance server baru akan dimulai. Server
proses akan berhenti setelah tidak aktif selama jangka waktu tertentu (secara {i>default<i} 3 jam, yang dapat
diubah menggunakan opsi pengaktifan --max_idle_secs
).
Kebanyakan, fakta bahwa ada server yang sedang berjalan tidak terlihat oleh tapi terkadang ada hal yang perlu diingat. Misalnya, jika Anda menjalankan skrip yang melakukan banyak pembuatan otomatis di direktori yang berbeda, penting untuk memastikan bahwa Anda tidak mengumpulkan banyak server yang tidak aktif; Anda Anda bisa melakukannya dengan mematikannya secara eksplisit ketika Anda sudah selesai, atau dengan menentukan periode waktu tunggu yang singkat.
Nama proses server Bazel muncul dalam output ps x
atau ps -e f
sebagai bazel(dirname)
, dengan dirname adalah nama dasar
yang mencakup {i>root <i}dari direktori {i>workspace<i} Anda. Contoh:
ps -e f
16143 ? Sl 3:00 bazel(src-johndoe2) -server -Djava.library.path=...
Hal ini memudahkan untuk mengetahui
proses server mana yang termasuk dalam suatu
Workspace. (Ketahuilah bahwa dengan opsi tertentu lainnya untuk ps
, server Bazel
proses dapat diberi nama hanya java
.) Server Bazel dapat dihentikan menggunakan
perintah shutdown.
Saat menjalankan bazel
, klien akan memeriksa terlebih dahulu apakah server tersebut
versi; jika tidak, server dihentikan
dan yang baru dimulai. Hal ini memastikan bahwa
penggunaan proses server yang berjalan
lama tidak mengganggu
pembuatan versi.