Latihan 1 dari materi systemd & Services di Terminal — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua function di kode awal. Variabel unit dan baris-baris console.log di bawahnya sudah ada, biarkan saja.
parseUnitFile(content): baca teks unit file baris per baris. Baris [Nama] membuka section baru, namanya tanpa kurung siku. Baris key=value masuk ke section yang sedang terbuka; pecah di tanda = yang pertama saja, karena value boleh berisi spasi atau =. Abaikan baris kosong. Untuk unit di kode awal, hasilnya { Unit: { Description: "My App", After: "network.target" }, Service: { ExecStart: "/usr/bin/node server.js" } }.
describeRestartPolicy(policy): kembalikan deskripsi persis seperti ini:
on-failure menjadi Restart jika exit gagal
always menjadi Selalu restart
on-success menjadi Restart jika exit sukses
policy lain, seperti never atau kadang, menjadi Policy tidak dikenal
Kamu boleh menambahkan no menjadi Tidak pernah restart supaya kamusnya lengkap; yang ini gak dicek.
Console harus mencetak enam baris ini, berurutan: My App, network.target, /usr/bin/node server.js, Restart jika exit gagal, Selalu restart, Policy tidak dikenal.
Hint
Unit file berformat INI: baris dalam kurung siku membuka section baru, dan baris key=value di bawahnya milik section itu sampai section berikutnya. Jadi kamu perlu mengingat section mana yang sedang terbuka selama membaca baris demi baris.
Simpan result = {} dan section = null. Untuk tiap baris yang sudah di-trim: lewati yang kosong; kalau diawali [ dan diakhiri ], section = nama di dalamnya dan result[section] = {}; selain itu cari eq = line.indexOf("=") lalu isi result[section][kiri] = kanan. describeRestartPolicy cukup object kamus plus teks cadangan.
const eq = line.indexOf("="); result[section][line.slice(0, eq)] = line.slice(eq + 1); dan untuk policy: const map = { "on-failure": "Restart jika exit gagal", always: "Selalu restart", "on-success": "Restart jika exit sukses" }; return map[policy] || "Policy tidak dikenal";
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...