Perangkat lama yang terasa lambat sering bukan karena aplikasi yang sedang dibuka, melainkan karena puluhan proses kecil yang menyala diam-diam sejak login: updater yang memeriksa repositori, indexer yang memindai seluruh disk, daemon sinkronisasi cloud yang tidak pernah dipakai. Satu per satu memang ringkas, tetapi kolektifnya besar — tiap daemon memakan puluhan megabyte RAM dan tiap bangunannya memicu I/O kecil yang mahal pada HDD tua. Chapter ini memetakan tiga sumber pemakan resource diam-diam, membedah cara mengauditnya, lalu melatih skrip penyusun daftar kandidat untuk dimatikan.

Tiga Sumber Pemakan Resource Diam-Diam #

Pemakaian background pada desktop Linux datang dari tiga tempat berbeda, dan ketiganya ditangani dengan cara berbeda pula:

  1. Service systemd — daemon yang dinyalakan otomatis saat boot: bluetooth.service pada PC desktop tanpa adapter bluetooth, cups.service untuk printer yang tidak pernah ada, tracker-miner-fs yang mengindeks isi disk demi pencarian file.
  2. Autostart desktop — aplikasi yang ikut dinyalakan saat login lewat file .desktop di folder ~/.config/autostart/: pusat pembaruan, agent cloud-sync, helper periferal.
  3. Pilihan aplikasi itu sendiri — aplikasi yang secara sah kita pakai tetapi punya alternatif yang jauh lebih hemat.

Urutan penanganan mengikuti urutan daftar: service menyala paling awal, autostart menyusul saat login, dan penggantian aplikasi adalah keputusan terakhir.

Mengaudit Service yang Menyala #

Perintah systemctl list-unit-files --state=enabled mendaftar semua unit yang akan dinyalakan otomatis saat boot. Berikut contoh tampilan hasilnya pada desktop lama yang belum pernah diaudit:

text
UNIT FILE                       STATE    VENDOR PRESET
NetworkManager.service          enabled  enabled
atd.service                     enabled  enabled
avahi-daemon.service            enabled  enabled
bluetooth.service               enabled  enabled
cups.service                    enabled  enabled
cups-browsed.service            enabled  enabled
ssh.service                     enabled  enabled
tracker-miner-fs.service        enabled  enabled

Audit dilakukan dengan mengajukan dua pertanyaan pada tiap baris: perangkat/fungsinya ada di mesin ini? dan fungsinya benar-benar dipakai? bluetooth.service jelas sia-sia pada PC tanpa adapter bluetooth; cups dan cups-browsed melayani printer; avahi-daemon menyiarkan penemuan layanan jaringan (mDNS) yang jarang dibutuhkan di rumah; tracker-miner-fs mengindeks file demi pencarian desktop — pekerjaan berat untuk HDD lama; atd menjalankan tugas terjadwal at yang nyaris tak pernah dipakai di desktop. Sebaliknya, NetworkManager dan ssh.service justru dipertahankan: yang pertama mengelola koneksi, yang kedua adalah pintu kita masuk bila layar atau sesi bermasalah. Untuk mematikan kandidat secara nyata: sudo systemctl disable --now bluetooth.service — disable mencabutnya dari boot dan --now juga menghentikannya seketika; mekanisme keduanya dibedah di Chapter systemctl dan Managing Services . Daftar opsi lengkapnya terdokumentasi di systemctl(1) .

Latihan: Skrip Penyusun Kandidat yang Aman Dimatikan #

Keputusan “mana yang boleh dimatikan” bisa dirumuskan sebagai aturan, dan aturan bisa dilatih sebagai skrip. Fixture berikut meniru daftar service di atas, lalu skrip menyaringnya berdasarkan jawaban dua pertanyaan sederhana:

bash
cat > daftar-service.txt <<'AKHIR'
bluetooth.service         enabled
cups.service              enabled
cups-browsed.service      enabled
NetworkManager.service    enabled
avahi-daemon.service      enabled
tracker-miner-fs.service  enabled
atd.service               enabled
ssh.service               enabled
AKHIR

cat > kandidat-off.sh <<'SKRIP'
#!/bin/bash
# kandidat-off.sh <daftar-service> <ada-bluetooth> <ada-printer>
while read -r unit state; do
    [ "$state" = "enabled" ] || continue
    case "$unit" in
        bluetooth.service)
            [ "$2" = "tidak" ] && echo "MATIKAN $unit - PC ini tidak punya bluetooth" ;;
        cups*|avahi-daemon*)
            [ "$3" = "tidak" ] && echo "MATIKAN $unit - tidak ada printer di rumah" ;;
        tracker-miner*)
            echo "MATIKAN $unit - indexing file memakan I/O HDD lama" ;;
        atd.service)
            echo "MATIKAN $unit - antrean 'at' tidak pernah dipakai" ;;
    esac
done < "$1"
SKRIP

bash kandidat-off.sh daftar-service.txt tidak tidak

Output yang Dihasilkan:

text
MATIKAN bluetooth.service - PC ini tidak punya bluetooth
MATIKAN cups.service - tidak ada printer di rumah
MATIKAN cups-browsed.service - tidak ada printer di rumah
MATIKAN avahi-daemon.service - tidak ada printer di rumah
MATIKAN tracker-miner-fs.service - indexing file memakan I/O HDD lama
MATIKAN atd.service - antrean 'at' tidak pernah dipakai

Enam dari delapan service masuk daftar kandidat. Bedah skripnya:

  1. Baris 15 (while read -r unit state): membaca fixture baris demi baris, memecah tiap baris ke dua variabel — nama unit dan statusnya.
  2. Baris 16 ([ "$state" = "enabled" ] || continue): hanya service berstatus enabled yang diproses; baris lain (misalnya disabled) dilewati tanpa pesan.
  3. Baris 17–26 (case dengan pola): cups* menangkap cups.service sekaligus cups-browsed.service karena tanda * cocok dengan akhiran apa pun; unit yang tidak cocok pola apa pun (seperti NetworkManager.service) otomatis lolos tanpa dicetak — itulah cara skrip “mempertahankan” yang penting.
  4. Baris 19 dan 21 ([ "$2" = "tidak" ] && echo ...): kandidat bluetooth dan printer bergantung jawaban pengguna yang masuk sebagai argumen — jalankan ulang dengan ya ya dan kedua kelompok itu hilang dari daftar.
  5. Baris 30: dua jawaban tidak mencerminkan PC desktop tanpa bluetooth dan printer — skenario paling umum untuk mesin tua.

Autostart Desktop: Aplikasi yang Ikut Login #

Service hanyalah separuh cerita. Desktop environment juga menjalankan aplikasi yang mendaftar diri lewat file .desktop di folder ~/.config/autostart/ — mekanisme standar XDG autostart yang dihormati GNOME, Xfce, LXQt, dan kawan-kawannya. Kita bedah isinya lewat replika folder tersebut:

bash
mkdir -p autostart
cat > autostart/pembaruan.desktop <<'AKHIR'
[Desktop Entry]
Type=Application
Name=Pusat Pembaruan
Exec=/usr/bin/update-notifier
Terminal=false
X-GNOME-Autostart-enabled=true
AKHIR

cat > autostart/sinkronisasi.desktop <<'AKHIR'
[Desktop Entry]
Type=Application
Name=Sinkronisasi Berkas
Exec=/usr/bin/cloud-sync --minimized
Terminal=false
X-GNOME-Autostart-enabled=true
AKHIR

for f in autostart/*.desktop; do
    nama=$(awk -F= '/^Name=/ { print $2 }' "$f")
    perintah=$(awk -F= '/^Exec=/ { print $2 }' "$f")
    printf '%-22s -> %s\n' "$nama" "$perintah"
done

Output yang Dihasilkan:

text
Pusat Pembaruan        -> /usr/bin/update-notifier
Sinkronisasi Berkas    -> /usr/bin/cloud-sync --minimized

Dua aplikasi diam-diam ikut login. Bedah format dan kodenya:

  1. Baris 1 (mkdir -p autostart): opsi -p membuat folder hanya bila belum ada — perintah ini aman diulang kapan saja, dan pada mesin nyata foldernya adalah ~/.config/autostart.
  2. Baris 6 (Exec=...): kunci Exec adalah perintah yang benar-benar dijalankan sesi login — inilah baris yang menentukan aplikasi mana yang menyala.
  3. Baris 8 (X-GNOME-Autostart-enabled): kunci khusus GNOME untuk menandai entri aktif; mekanisme standarnya tetap kehadiran file itu sendiri.
  4. Baris 20–24 (loop dan awk -F=): -F= menjadikan tanda sama-dengan sebagai pemisah field, sehingga print $2 mengambil nilai setelah tanda = pada baris Name dan Exec.
  5. Baris 23 (printf '%-22s ...'): rata kiri lebar 22 karakter menjaga kedua baris tetap sejajar walau namanya beda panjang.

Mengganti Aplikasi Berat dengan yang Setara #

Sumber ketiga adalah keputusan aplikasi itu sendiri, dan di sinilah kejujuran diperlukan. LibreOffice memang lengkap, tetapi untuk menulis satu surat, AbiWord memakai seperenam RAM-nya; untuk halaman sederhana, editor ringan seperti Mousepad menutup 90 persen pekerjaan tulis-menulis. Browser di perangkat sangat tua bisa diganti varian hemat — dengan catatan tegas: mesin render yang usang tidak lagi menerima perbaikan keamanan, jadi jangan dipakai untuk perbankan atau login akun penting; pada mesin 2 GiB ke atas, Firefox plus pemblokir iklan (Chapter Memilih Distro Ringan ) biasanya pilihan paling seimbang. Pemetaan lengkap aplikasi ringan beserta perbandingan konsumsinya kita susun di Chapter Lightweight Desktop Environment .

Dengan service dipangkas dan autostart dibersihkan, pemakaian dasar sistem kini ramping. Baseline dari Chapter Mengukur Penggunaan Resource akan memperlihatkan bedanya — dan langkah berikutnya mengatur ulang cara kernel memperlakukan RAM dan swap itu sendiri di Chapter Optimasi RAM .