Episode ini mengatur lifecycle service LXC: lxc.start.auto dan lxc.start.delay di config, autostart via systemd lxc@.service atau lxc-autostart, menjalankan systemd sebagai init di dalam container, serta penghentian teratur dengan lxc-stop dan lxc-shutdown.

Container kalian sudah bisa dibuat, dijalankan, dibatasi, dan disnapshot. Tapi ada satu masalah praktis: setelah host reboot, semua container tetap mati — kecuali kita mengaturnya. Di episode 10 kita membuat container bertahan secara otomatis: autostart saat boot, manajemen lewat systemd, dan penghentian yang bersih. Ini yang membedakan container lab dari layanan infrastruktur sungguhan.
Autostart diatur lewat dua kunci di config container:
lxc.start.auto = 1
lxc.start.delay = 5
lxc.start.order = 100lxc.start.auto = 1 — container otomatis start saat host boot.lxc.start.delay = 5 — jeda 5 detik setelah container ini start (memberi waktu database/network container pertama stabil).lxc.start.order = 100 — urutan start; makin kecil angkanya makin dulu (misal database order 50, web order 100).sudo lxc-autostartsudo lxc-autostart -slxc-autostart menghormati lxc.start.order dan lxc.start.delay yang sudah dikonfigurasi.
Tip
Urutkan dependensi: jika web server butuh database, beri database lxc.start.order = 10 dan web lxc.start.order = 100. Dengan lxc.start.delay, kalian memberi waktu database selesai boot sebelum web mencoba koneksi — mencegah race condition startup.
LXC modern menyediakan template unit systemd lxc@.service yang mengelola container sebagai service terdaftar di host. Dengan unit ini, seluruh kontrol systemd bekerja: enable, start, stop, status, hingga startup ordering terhadap service host lain.
Aktifkan autostart via systemd untuk container c1:
sudo systemctl enable lxc@c1.service
sudo systemctl start lxc@c1.servicePeriksa statusnya seperti service biasa:
systemctl status lxc@c1.serviceKeuntungan unit ini: log container terintegrasi dengan journald host, dan systemd bisa menjamin urutan start terhadap unit lain (misal lxc@db harus jalan sebelum nginx host).
lxc-autostart — sederhana, memakai pengaturan di config container (lxc.start.auto), cocok untuk skenario semua-container-ikut-boot.lxc@.service — eksplisit per-container, bisa di-systemctl enable/disable satuan, dan terintegrasi dependency systemd.Banyak pengguna memakai keduanya bersama: lxc.start.auto untuk perilaku default, unit systemd untuk kontrol granular. Hati-hati jangan sampai konfigurasi dobel membuat container di-start dua kali — biasanya aman karena LXC mencegah start dua kali, tapi tetap periksa systemctl status.
Container modern (Ubuntu 24.04, Debian, Fedora) menjalankan systemd sebagai init (PID 1) di dalamnya. Artinya layanan di dalam container dikelola seperti host Linux biasa: systemctl enable/start/status berfungsi normal di dalam container.
Masuk dan kelola service:
lxc-attach -n c1 -- systemctl status sshd
lxc-attach -n c1 -- systemctl enable --now sshd
lxc-attach -n c1 -- systemctl list-units --state=runningNote
Untuk systemd container berjalan penuh, host sebaiknya juga memakai systemd dan mendukung systemd-friendly container (bukan sekadar lxc.execute). Template resmi download sudah menghasilkan container systemd yang boot dengan benar. Pastikan tidak menggunakan template legacy lxc-execute untuk service yang butuh init penuh.
Setelah service jalan di dalam container, akses dari luar via port forwarding (episode 6) atau langsung ke IP container jika jaringan dibridge:
lxc-info -n c1 -iHlxc-shutdown mengirim sinyal ke init container (mirip menekan tombol power di desktop): systemd menerima perintah shutdown, menghentikan service dengan rapi, lalu mematikan. Ini cara yang paling benar untuk menghentikan container.
lxc-shutdown -n c1lxc-stop menghentikan container secara paksa — setara mencabut kabel listrik. Gunakan saat container hang atau lxc-shutdown tidak membalas.
lxc-stop -n c1lxc-shutdown agar service menutup diri dengan bersih (penting untuk database).lxc-stop, lalu pikirkan kenapa shutdown tidak jalan.lxc-shutdown -n c1 -t 10 || lxc-stop -n c1Inti yang harus dibawa pulang:
lxc.start.auto = 1 membuat container ikut boot; lxc.start.order dan lxc.start.delay mengatur urutan dan jeda.lxc-autostart memproses semua container ber-start.auto; lxc-autostart -s mematikan semua.lxc@.service mengintegrasikan container ke systemd host dengan dependency dan log journald.systemctl.lxc-shutdown untuk penghentian teratur, lxc-stop sebagai pilihan terakhir.Di episode 11 selanjutnya kita akan membahas bind & mount host path — lxc.mount.entry untuk memasang direktori host ke dalam container, opsi mount seperti ro, serta kasus nyata berbagi direktori data dan akses device.