2 poin oleh GN⁺ 2025-01-19 | 1 komentar | Bagikan ke WhatsApp
  • isd adalah alat yang menyediakan cara yang lebih baik untuk mengelola unit systemd, dengan antarmuka pengguna terminal (TUI) untuk mencari unit, memperbarui pratinjau secara otomatis, serta menawarkan penanganan sudo yang cerdas dan antarmuka yang dapat disesuaikan

Motivasi singkat

  • isd menyederhanakan proses rumit yang diperlukan untuk berinteraksi dengan unit systemd dan menyediakan informasi yang berguna bagi pengguna
  • Mengurangi kerepotan mengetik perintah systemctl berulang kali dan secara otomatis memperbarui hasil keluarannya

Instalasi

  • isd dapat diinstal melalui AppImage, nix, dan uv
  • AppImage adalah satu berkas eksekusi tunggal yang dapat dijalankan di semua distribusi Linux, sehingga juga bisa digunakan di server jarak jauh dengan hak akses terbatas
  • Untuk memasang isd di lingkungan nix, Anda dapat menginstalnya menggunakan paket nix
  • uv adalah pengelola paket Python, dan melalui uv Anda dapat memasang serta mengelola isd

Cara menggunakan isd

  • isd dapat mencari unit systemd, memeriksa statusnya, dan menyediakan pratinjau informasi terperinci untuk beberapa unit
  • Mengirim perintah systemctl ke unit yang dipilih dan secara otomatis memperbarui keluaran status
  • Anda dapat membuka pager di dalam isd untuk melihat seluruh keluaran status
  • Dapat membuka pager terpisah untuk keluaran Journal, serta mengatur tema dan key binding yang dapat disesuaikan

Mode pengguna/sistem

  • isd dijalankan dalam mode user atau system, dan jenis unit yang ditampilkan berbeda bergantung pada mode tersebut

Pencarian fuzzy

  • Melalui bilah pencarian fuzzy, semua unit dan berkas unit yang cocok dengan input akan dimuat dan disorot sesuai status saat ini

Memilih beberapa unit

  • Anda dapat memilih beberapa unit di widget hasil pencarian, dan pratinjau untuk unit yang dipilih akan ditampilkan

Command palette

  • Buka command palette untuk melihat semua perintah yang tersedia dan key binding-nya

Perintah

  • Misalnya, Anda dapat menekan Ctrl+O untuk menghentikan unit yang dipilih

Dukungan pager

  • Saat menjalankan isd, Anda dapat membuka pager untuk melihat seluruh keluaran pratinjau

Kustomisasi

  • isd menyediakan kustomisasi dan kemampuan konfigurasi, dengan berbagai tema dan key binding agar pengguna dapat mencapai produktivitas optimal

Ringkasan

  • Disarankan untuk mencobanya langsung agar dapat menilai apakah isd akan berguna bagi Anda

Langkah berikutnya

  • Periksa bagian kustomisasi dan keamanan

1 komentar

 
GN⁺ 2025-01-19
Komentar Hacker News
  • Terlihat bagus
    Cara menangani ExecStop di skrip layanan systemd benar-benar membingungkan
    ExecStart adalah perintah yang dijalankan saat sistem boot atau saat pengguna memulai layanan, sedangkan ExecStop dijalankan setelah perintah start selesai
    Agar perintah stop dijalankan saat sistem dimatikan atau saat pengguna menghentikan layanan, perlu mengatur RemainAfterExit=yes
    ExecStop pada dasarnya lebih mirip event “waktu bersih-bersih” daripada event “untuk menghentikan layanan”

    • Anggap saja sebagai “saat start” dan “saat stop”
      Perlu diingat bahwa systemd disesuaikan untuk daemon
      Jika layanan hanya menjalankan satu perintah yang akan selesai suatu saat, Anda harus secara eksplisit memberi tahu systemd agar memperlakukannya berbeda dari daemon
      Seperti yang dikatakan orang lain, kemungkinan besar kombinasi yang Anda inginkan adalah oneshot + RemainAfterExit
    • Pada type=forking, ExecStop bekerja seperti yang diharapkan
  • Saya benar-benar suka
    Setelah lama hanya memakai command line murni sampai terasa menyakitkan, belakangan saya mulai memakai alat seperti lazygit/lazydocker untuk melihat status sistem/tree yang tidak transparan, dan produktivitas saya meningkat besar
    Saya mengelola beberapa layanan tingkat pengguna dan sistem, tetapi debugging terasa membosankan
    Bagian di kalimat pertama yang mencantumkan perintah-perintah umum dan ketidaknyamanannya benar-benar terasa relevan
    Karena saya memakai NixOS, cara mengedit langsung file unit yang immutable tidak akan bisa, tetapi eksplorasi, visibilitas, dan pengelolaan layanan tampaknya akan sangat membantu

    • Saya juga pengguna NixOS, dan justru karena hal itulah saya membuat proyek ini
      Saya berencana menambahkan “panduan” ke dokumentasi; singkatnya, saat men-debug unit di NixOS, ada baiknya mencoba systemctl edit --runtime
      Debugging jadi jauh lebih mudah
  • Terlihat sangat bagus
    Saya memelihara proyek serupa, dan berurusan dengan systemd/dbus API cukup menyakitkan
    Saya ingin mencobanya dan melihat apakah ada yang bisa dipelajari
    https://github.com/rgwood/systemctl-tui

    • Luar biasa
      Sepertinya akan sering saya pakai
      Satu-satunya yang kurang hanya paket deb
  • Akhirnya systemd-client muncul juga, senang melihatnya
    Langkah berikutnya saya harap adalah TUI untuk non-Linux seperti macOS, FreeBSD, Windows
    Di macOS saya memakai LaunchControl.app, tetapi itu bukan TUI
    Satu hal, di uv 0.5.21 saya harus melakukannya seperti di bawah ini, dan uvx sama sekali tidak berhasil
    $ uv tool install git+https://github.com/isd-project/isd
    Sebaliknya, $ uv tool install https://github.com/isd-project/isd/isd@latest dari dokumentasi tidak berhasil
    Meski begitu, uv jauh lebih cepat daripada pip(x), jadi saya pindah

    • Itu kesalahan dan sekarang sudah diperbaiki
      Terima kasih sudah memberi tahu
  • Keren bahwa uv membuat instalasi alat seperti ini jadi semudah itu
    Yang terlewat dari prosedur instalasi adalah bahwa uv mengabaikan dependensi Python dan memasang alat ini
    Mesin saya memakai 3.10 sehingga isd tidak berjalan, dan saya menyelesaikannya dengan opsi -p 3.13
    Layak disebutkan di dokumentasi

    • Terima kasih sudah memberi tahu
      Flag tersebut sudah saya masukkan ke dokumentasi
  • “Kalau pernah kesal saat mengetik” — itu persis saya
    Padahal saya menyukai systemd
    Saya belum mencoba memasangnya, tetapi penasaran apakah bisa terhubung ke host jarak jauh
    Saya sering memakai systemctl --host status foo.service, dan memeriksa status, timers, logs, dan sebagainya dari jarak jauh

    • Saya baru pertama kali mendengar systemctl --host
      Sayangnya belum didukung
      Secara garis besar ini lebih mirip wrapper mewah yang membungkus systemctl lokal
      Namun karena ada AppImage, mudah-mudahan menjalankannya di server jarak jauh bisa cukup mudah
      Bagaimanapun, jika Anda membuka issue, saya akan melihatnya
  • Di server jarak jauh atau image Docker, kita tidak bisa memasang hal seperti ini
    Perlu beberapa backend untuk menjalankan perintah dan mengumpulkan informasi: lokal, SSH, Docker
    Setelah dipasang secara lokal, harus bisa menjalankan perintah di mesin jarak jauh lewat SSH, dan juga lewat docker exec

  • Saya ragu apakah pernyataan “AppImage ini tidak berfungsi jika Nix terpasang” benar-benar tepat
    Saya paham mengapa tidak bisa di NixOS. Sepertinya tidak bisa menjalankan systemctl milik host
    Namun, jika hanya Nix yang terpasang di OS lain, rasanya tidak ada alasan sampai tidak bisa berjalan
    Menariknya, di Nix v2.24.11, perintah Nix yang disediakan juga tidak berfungsi
    $ nix run https://github.com/isd-project/isd gagal dengan Failed to open archive (Unrecognized archive format)
    Mungkin bisa berjalan jika diubah ke bentuk Git URL, tetapi karena Nix punya fetcher GitHub bawaan yang lebih efisien, perintah yang benar tampaknya nix run github:isd-project/isd
    Proyek ini sendiri keren
    Dulu saya ingin membuat sesuatu yang mirip dengan DBus API milik systemd dan Qt, dan sempat menulis sedikit kode
    DBus API kemungkinan besar menyediakan hampir semua fitur yang dibutuhkan. Tentu saja, memanggil systemd -H jauh lebih mudah daripada mengimplementasikan tunneling SSH sendiri
    Agak membuat frustrasi bahwa systemd dan Linux modern punya begitu banyak data dan antarmuka yang bisa memudahkan administrasi sistem, khususnya pengelolaan desktop yang secara tradisional sulit dilihat bagian dalamnya, tetapi semuanya kurang terekspos
    Dulu sulit mengetahui apa yang terjadi ketika aplikasi autostart xdg gagal, tetapi sekarang di sebagian desktop systemd menjalankan aplikasi autostart xdg, sehingga mudah membuat GUI yang menampilkan item autostart yang gagal dan penampil log
    Namun rasanya belum ada alat yang terpelihara dan fiturnya relatif lengkap, jadi ini cukup membuat frustrasi

    • Benar, ini jadi rumit sehingga saya tidak ingin merekomendasikannya sambil menjelaskan detailnya
      Singkatnya, AppImage dibuat dengan nix, dan AppImage “me-mount” direktori /nix/ yang ada di dalam AppImage. Ini bukan overlay
      Jadi, panggilan dari TUI yang mengakses /nix/ tidak menuju direktori /nix milik sistem, dan muncul berbagai masalah aneh
      Misalnya, di Ubuntu Anda bisa memasang EDITOR lewat home-manager
      Karena systemctl “dapat diakses”, isd akan mulai dengan normal, tetapi ketika membuka EDITOR di bawah /nix, itu tidak ditemukan, sehingga sangat membingungkan bagi pengguna
      Jadi, jika Anda sudah memakai Nix, lebih mudah untuk mengatakan agar memakai metode instalasi Nix
      Dokumentasi yang salah sekarang sudah saya perbaiki
      Saya juga memahami frustrasi itu
      Secara pribadi, membuat alat seperti itu akan sangat menyenangkan, tetapi itu bukan pekerjaan mudah, dan pertanyaannya juga siapa yang akan mendukung pekerjaan tersebut
      TUI ini pun, meski cakupannya masih bisa dikelola, membutuhkan cukup banyak pekerjaan
      Jadi saya rasa saya tidak akan terlalu banyak berinvestasi pada “antarmuka tingkat lebih tinggi”
      Selain itu, saya tidak tahu mengapa komentar asli mendapat respons buruk
    • Saya sama sekali tidak mengerti mengapa komentar ini mendapat respons buruk
      Ada yang bisa menjelaskan?
  • Terlihat bagus dan dibuat dengan baik
    Namun agak disayangkan bahwa alat seperti ini sendiri memang diperlukan
    Sebagian besar interaksi dengan systemd itu sepele: me-restart layanan, melihat berkas log untuk mencari tahu apa yang salah, memastikan layanan dimulai saat boot
    Saya tidak mengerti mengapa usability systemd begitu kurang untuk tugas-tugas umum seperti ini
    Meski begitu, TUI ini tampaknya membantu, jadi terima kasih
    Tentu saja systemd, berbeda dari initd, lebih deterministik dan mencakup segala macam fitur
    Untungnya sekarang sebagian besar interaksi seperti ini bisa diotomatisasi hingga menghilang, jadi kebencian membara seperti dulu sudah tidak ada lagi
    Sekarang hanya seperti bara kecil

    • Saya paham mengapa mereka tidak ingin membuat systemd “membengkak” dengan memasukkan TUI yang kompleks dan subjektif
      Namun akan sangat menyenangkan jika ada antarmuka yang lebih dekat ke proyek upstream
      Hanya saja, menjadikan systemd ramah pemula dan mudah diakses tampaknya bukan hal yang terlalu penting dalam pendanaan mereka
  • Bagaimana keamanan ditangani?
    Bukan soal izin sistem yang sudah ditangani Linux dengan baik, melainkan saya ingin tahu jaminan bahwa ini tidak akan diambil alih penyerang eksternal untuk kendali jarak jauh

    • Saya pembuatnya
      Menurut saya ini pertanyaan penting yang harus Anda tanyakan pada diri sendiri saat menjalankan aplikasi atau skrip yang melakukan sesuatu dengan sudo
      Karena itu, saya sudah menulis bagian Security yang cukup rinci di halaman dokumentasi isd
      https://isd-project.github.io/isd/security/
      Beri tahu saya jika ada yang terlewat