Home/Docs/Multi-OS Persistence

Multi-OS Persistence

Agent otomatis mendeteksi init system dan mendaftar sesuai lingkungan.

Urutan Deteksi

1. systemd tersedia?  → systemctl enable (sudah dari install.sh)
2. OpenRC tersedia?   → /etc/init.d/sysconf-daemon (format openrc-run)
                        rc-update add sysconf-daemon default
3. SysVinit?          → /etc/init.d/sysconf-daemon (format LSB)
                        update-rc.d defaults / chkconfig --add
4. Fallback           → /etc/rc.local (insert sebelum exit 0)

Deteksi OpenRC

func hasOpenRC() bool {
    for _, p := range []string{"/sbin/openrc", "/usr/sbin/openrc", "/usr/sbin/rc-update"} {
        if _, err := os.Stat(p); err == nil { return true }
    }
    return false
}

:::note OpenRC dicek sebelum SysVinit karena keduanya menggunakan /etc/init.d/ — tapi format script berbeda. :::