Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Aprovado na AWS: openSUSE Leap 15.4 Micro!

Levando o Linux a sério desde 1998, adquiri experiência em sistema operacional GNU/Linux que permitiu construir a plataforma openSUSE Leap 15.4 Micro na nuvem AWS.

Utilizando trabalho de engenharia GNU/Linux para otimização, disponibilizo a versão minimalista do openSUSE Leap 15.4 na AWS. Além de multiuso, completa, estável e fácil de usar, destina-se a usuários, desenvolvedores, administradores, e qualquer profissional que deseja os recursos openSUSE no servidor. É ótimo para iniciantes, usuários experientes e ultra geeks, em resumo, é perfeito para todos!

O sistema operacional openSUSE Leap 15.4 Micro proporciona menos consumo de recursos computacionais. Com menos consumo de disco e memória e disco, este sistema operacional permite o uso de modestas maquinas virtuais como t2.nano sem comprometer o desempenho.

Sugestões em cabelo@opensuse.org
Informações aqui: https://aws.amazon.com/marketplace/pp/prodview-763pijt3fq6ne

A seguir as principais vantagens:

Recursos openSUSE Leap 15.4 openSUSE 15.4 Micro
Espaço em disco 1,8G 906M
Memória utilizada 182M 82M
Pacotes 593 263

Desvantagem: Não possui YAST!

a silhouette of a person's head and shoulders, used as a default avatar

Perkembangan Wirausaha Ayam KUB Usia 1 Bulan

Zeze Zahra memelihara ayam KUB di pekarangan toko pertanian Zeze Zahra sebagai simulasi ternak mulai dari awal anakan ayam DOC (Day Old Chicken).

Saat ini anakan ayam sudah berusia 1 bulan lebih. Kalau mengacu pada usia 10 minggu (2.5 bulan), berat ayam kisaran 400 gr sd 1200 gr atau kalau dirata-rata sekitar 800 gram (sumber dari buku mengenai ayam KUB terbitan Penebar Swadaya/Trubus).

Ayam KUB di Zeze Zahra usia sekitar 5 minggu berkisar antara 400-600 gram. Masih masuk kategori diatas.

Bagaimana perkembangan pemeliharaan dan bagaimana kondisi ayam KUB usia 1 bulan di Zeze Zahra?

a silhouette of a person's head and shoulders, used as a default avatar

Syslog-ng 101, part 2: Basic concepts

Welcome to the second part of my syslog-ng tutorial series. In this part, we cover some of the basic concepts behind syslog-ng.

Last time we defined syslog-ng as an enhanced logging daemon with a strong focus on portability and high-performance central log collection.

Let us pull this sentence apart, as all words are here for a reason. The original syslog implementation was pretty simple: it collected log messages from applications and sorted them to various files. Syslog-ng enhanced this with message parsing, advanced filtering and many more log sources and destinations. Daemon means that it is an application normally running continuously in the background. Portability means that syslog-ng runs not just on Linux, but also on various BSD and UNIX systems as well. High performance means that syslog-ng is implemented in C and thus it is fast and resource efficient. Depending on the configuration, even a Raspberry Pi can collect tens of thousands of log messages a second.

You can watch the video on YouTube:

Or you can read the rest of my blog at: https://www.syslog-ng.com/community/b/blog/posts/syslog-ng-101-part-2-basic-concepts

syslog-ng logo

a silhouette of a person's head and shoulders, used as a default avatar

Bahaya Pinjaman Online Bunga Berbunga

Tiap kali mendengar kejadian mengenai pinjaman online di lingkungan tempat tinggal maupun pertemanan, yang terdengar adalah nestapa. Duka, lara dan bencana.

Kasus pertama adalah di lingkungan tempat tinggal orang tua di Tambun Bekasi. Ada salah satu keluarga yang meminjam uang secara online ke Bank Emok.

Istilah bank emok sendiri berasal dari bahasa Sunda yang artinya ibu-ibu pemberi uang yang duduk bersimpuh dengan kedua kaki dilipat ke belakang. Istilah tersebut populer lantaran sistem transaksi yang dilakukan oleh bank emok dengan duduk secara lesehan di tempat tempat khusus seperti poskamling atau teras rumah warga.

Warga yang meminjam ini biasanya untuk berbagai macam keperluan hidup. Bisa untuk kebutuhan sehari-hari, untuk pendidikan (bayar sekolah anak), untuk modal usaha dan lain-lain. Ada kalanya menggunakan nama seolah-olah koperasi simpan pinjam.

Bagi sebagian warga, cara ini dianggap praktis karena prosesnya cepat dan tidak berbelit. Tidak seperti prosedur formal ke bank atau ke lembaga lain yang butuh prasyarat macam-macam. Masalahnya, pinjaman ini biasanya mengenakan bunga yang sangat tinggi. Mirip dengan pinjaman online berbasis aplikasi.

Banyak warga yang akhirnya terjebak dari hutang yang satu ke hutang yang lain. Tambah lama tambah menggunung. Dalam konteks salah satu keluarga di Tambun, pinjaman yang awalnya hanya 1-2 juta kemudian menggunung hingga mencapai lebih dari 150 juta rupiah.

Hutang sebesar itu membuat masalah buat siapa saja yang terkait. Debt collector datang silih berganti. Caci maki baik lewat lisan langsung maupun lewat telepon sudah tak terhitung jumlahnya. Kadang si peminjam sembunyi, yang jadi sasaran orang tua ataupun kerabatnya.

Rumah sampai terjual. Kebun dan tanah keluarga sampai terjual. Saudara terpaksa meminjam uang ke perusahaan untuk membantu melunasi hutang. Itupun tidak terbayar hingga menimbulkan masalah baru di perusahaan tempat bekerja.

Kisah kedua (yang juga kisah nyata karena saya dengar langsung) menimpa salah satu ibu yang bekerja di sekolah anak saya. Karena tiba-tiba kehilangan kepala keluarga (meninggal), ia harus menanggung beban penghidupan, pendidikan dan kesehatan anak-anaknya. Karena pendapatan yang terbatas, ia tergoda untuk menginstall aplikasi pinjaman online dan meminjam uang melalui aplikasi itu.

Pinjaman itu dianggap sebagai penolong. Hanya bermodalkan KTP dan uang pinjaman cair. Tapi nanti dulu, dibalik yang kelihatan mudah, ada bencana yang sudah menanti.

Pinjaman online itu biasanya ada biaya tersembunyi. Pinjam 1 juta, dapatnya tidak 1 juta. Ada potongan biaya layanan dan biaya lainnya. Kadang potongannya ini cukup besar. Kemudian bunga pinjaman biasanya hitungannya per hari. Dulu bunga pinjaman online kisaran 0.8% per hari. Katanya sekarang jadi 0.4% per hari. Kalau 0.8% per hari, 10 hari saja sudah 8%. 30 hari sudah 24%. Jarak 4 bulan, nilai bunga sudah hampir sama dengan pokok pinjaman.

Si ibu awalnya pinjam online sedikit dengan niat langsung dibayar setelah gajian. Niat tinggal niat, pinjaman kadang sudah lunas ditawari lagi dengan nilai yang lebih besar. Dengan embel-embel bahwa itu sebagai reward karena lunas tepat waktu. Makin lama makin besar hingga akhirnya tidak terbayarkan. Nilai total pinjamannya mencapai 60 juta rupiah dan ia kalut harus bagaimana membayar hutang sebesar itu.

Ia bercerita pada kepala sekolah dan kepala sekolah bercerita pada saya dan saya ikutan ngenes mendengarnya. Kalimat kasar debt collector via telepon, WA maupun datang langsung sudah sedemikian parah. Rekan-rekan kerja di kantor ikut tahu bahkan sampai yang jauh-jauhpun tahu karena deb collector pinjol menelpon list kontak yang ada di HP-nya.

Ia berkali-kali ganti nomor HP dan tambah mumet karena tidak punya solusi untuk melunasi hutang.

Banyak dari kita yang cenderung resisten pada jargon-jargon agama. Kalau dibilang soal bahayanya riba, jawabannya kadang, “Emangnya bisa apa minjem tanpa riba… Kalau gitu saya minjem 500 juta saya balikin 500 juta”.

Okelah saya tidak bahas sisi agama. Yang jelas, model pinjaman bunga berbunga (bunga majemuk) seperti pinjol ini jelas berbahaya. Lebih berbahaya lagi menyasar pada orang-orang kampung yang secara literasi finansial rata-rata rendah. Bahkan tidak hanya orang kampung kok. Banyak juga orang yang bekerja kantoran yang terlilit hutang dari model pinjaman bunga berbunga ini.

Kesulitan bagi kita-termasuk bagi saya-adalah kita tidak memiliki solusi permanen untuk hal itu. Karena kita juga keterbatasan. Kalau ada teman atau tetangga atau saudara yang mengalami masalah hutang pinjaman online, kita hanya bisa sekedar bersimpati dan menyesalinya. Kalaupun membantu, sebisanya kita membantu.

Kalau soal nasihat, kadang pelaku maupun korban pinjaman online ini punya berbagai macam jawaban untuk nasihat.

“Kamu sebaiknya menghindari pinjaman online, karena itu berbahaya dan bisa jadi masalah…”, misalnya dikasih saran seperti itu, nanti dijawab,

“Terus, kamu mau minjemin saya? Terus kalau saya nggak punya uang buat makan, kamu bisa bantu? Terus kalau saya nggak kerja dan nggak punya uang, kamu bisa bantu salurkan saya bekerja?”

Susah kan. Jadi saya menuliskan disini juga belum ada solusi. Tapi bahaya pinjaman online ini nyata. Sudah banyak contoh kejadiannya. Kalau tidak diatasi secara sistematis, bisa-bisa meledak jadi masalah sosial masyarakat yang lebih luas.

Saya pribadi baru bisa melakukan apa yang saya bisa di lingkup terbatas saya. Di lingkungan Excellent, Aktiva dan Zeze Zahra misalnya, saya mendorong pembentukan koperasi sekaligus membantu modal dasar koperasi, agar karyawan dan staff bisa meminjam ke koperasi jika membutuhkan biaya dadakan. Pinjaman itu tanpa bunga sama sekali dan tanpa biaya administrasi.

Dalam hal kecil, tiap kali ada pekerjaan di Zeze Zahra, saya berusaha melibatkan warga sekitar semaksimal mungkin, supaya ada pendapatan yang masuk dari pekerjaan tersebut. Kalau ada pendapatan, minimal bisa mengurangi kemungkinan niatan meminjam online.

Meski demikian, kunci utama tetap disisi personal masing-masing. Pahami bahayanya pinjaman online, berusaha agar bisa mendapatkan uang dengan cara yang berkah dan lebih memilih pilihan lain yang relatif tidak berbahaya.

Ada satu solusi lagi sebenarnya, yaitu mendorong pemerintah untuk lebih serius mengatasi dampak pinjaman online bunga berbunga, namun saya termasuk yang skeptis apakah hal ini bisa atau tidak. Kalaupun bisa, mungkin akan butuh waktu dan pressure dari banyak pihak. Sementara menunggu itu, lebih baik kita mengamankan diri kita, keluarga kita dan lingkungan sekitar kita.

Note : Image by Rilson S. Avelar from Pixabay

a silhouette of a person's head and shoulders, used as a default avatar

/usr/bin/*ctl なプログラムが何をするのかを試してみました(hostnamectl)

この記事は openSUSE Advent Calendar 2022 の5日目です。

systemd が使われるようになると、daemon の制御とかのやり方は大きく変わりました。/etc/init.d にあるスクリプトから、systemd パッケージに含まれるコマンドを使うようになってきました。それらのコマンドは、xxxxxctl という、末尾に ctl が含まれるものが多いように感じました。そこで、/usr/bin/ の中にある、末尾が ctl なプログラムがどんなものかを簡単に調べて見ることにしました。

今回は、hostnamectl を紹介します。

コマンド名: hostnamectl
パッケージ: systemd-249.12-150400.8.13.1.x86_64
動作: ○

詳細:
hostnamectl は、システムのホスト名や関連する情報の表示や変更を行うプログラムです。昔ながらの、ホスト名を表示するプログラム hostname は、引数を指定しないで入力すると、単にホスト名を返すだけですが、hostnamectl を引数を指定しないで実行すると、

Static hostname: suse154
       Icon name: computer-vm
         Chassis: vm
      Machine ID: 61ee5253e44f403c9918308e232c84b8
         Boot ID: 2dc4f7eae3724c6497708a64e08a516c
  Virtualization: kvm
Operating System: openSUSE Leap 15.4
     CPE OS Name: cpe:/o:opensuse:leap:15.4
          Kernel: Linux 5.14.21-150400.24.33-default
    Architecture: x86-64
 Hardware Vendor: QEMU
  Hardware Model: Standard PC _i440FX + PIIX, 1996_

と、たくさんの情報を表示します。今回テストしている環境が KVM 配下であることもバレてしまいます。旧来の hostname コマンドと互換を取るには、引数として hostname を指定すれば良いです。単に hostname を返します。
もちろん、root でないとできませんが、host 名を変更することも可能です。

# hostnamectl hostname suse154A
# hostnamectl hostname
suse154A

そのほかに、JSON形式で出力することも可能です。

hostnamectl --json=pretty
{
        "Hostname" : "suse154",
        "StaticHostname" : "suse154",
        "PrettyHostname" : null,
        "DefaultHostname" : "localhost",
        "HostnameSource" : "static",
        "IconName" : "computer-vm",
        "Chassis" : "vm",
        "Deployment" : null,
        "Location" : null,
        "KernelName" : "Linux",
        "KernelRelease" : "5.14.21-150400.24.33-default",
        "KernelVersion" : "#1 SMP PREEMPT_DYNAMIC Fri Nov 4 13:55:06 UTC 2022 (76cfe60)",
        "OperatingSystemPrettyName" : "openSUSE Leap 15.4",
        "OperatingSystemCPEName" : "cpe:/o:opensuse:leap:15.4",
        "OperatingSystemHomeURL" : "https://www.opensuse.org/",
        "HardwareVendor" : "QEMU",
        "HardwareModel" : "Standard PC _i440FX + PIIX, 1996_",
        "ProductUUID" : null
}

JSON 形式で出力する場合、hostname オプションを指定すると、json 機能は無効になってしまうようです。

従来からの hostname コマンドもたぶん残っていくとは思いますが、新しい hostnamectl コマンドも覚えて置いた方が良いかもしれません。

a silhouette of a person's head and shoulders, used as a default avatar

Traducción del libro «El programador mediocre»

He realizado la traducción al español del libro «The Mediocre Programmer». Creo que te resultará interesante tanto si trabajas en la programación como si no

Imagen: David Revoy

No recuerdo cómo conocí el texto de Craig Maloney, quizás dí con él porque le sigo en Mastodon y desde ahí conocí su proyecto. Cuando lo conocí, antes de leerlo, quizás pensé que sería un montón de recursos y consejos técnicos para las nuevas personas que llegaran a esto de la programación, pero me resultó curioso el título.

Después de leerlo, me dí cuenta que no. Que no se hablaba de nada técnico sobre programación, que los que así se cuenta tiene que ver más con el aspecto psicológico y mental en lo referente a la programación que con aspectos técnicos.

Yo, sin ser programador, encontré en el libro algunos consejos y trucos interesantes para aplicar en mi día a día en algunos aspectos de mi faceta digital (mi blog, traducciones, colaboraciones, etc).

Y como siempre, de ese interés personal nació la traducción que he publicado, después de pedir el correspondiente permiso al autor original. Me gustó lo que se contaba y la traducción «me obligaba» a tener que leer el texto y comprenderlo para realizarla y poder compartirla con todo el mundo.

Si tu trabajo tiene que ver de alguna manera con la programación y en algún momento te has sentido una persona perdida, frustrada o fuera de lugar, este texto te ayudará a saber que es algo común y el autor compartirá contigo sus visiones de su propio viaje en el mundo de la programación y cómo consiguió ir pasando etapas en ese viaje.

Tu tendrás tu propio camino en el viaje de la programación, pero tomar como referencia lo que otras personas han sentido quizás te sirva como ayuda en los momentos bajos del camino, espero que sea así.

Pero si como yo, tu faceta profesional no tiene nada que ver con la programación, también es un texto interesante, este es un relato en el que el autor revela sus puntos flacos, y comparte algunos de los recursos que le han ayudado a conseguir sus metas. Quizás tu puedas aplicarlas a tu día a día en otras facetas, a mí me han servido.

La traducción la he realizado en un repositorio git hospedado en Codeberg donde tienes disponible todos los capítulos y el código original que utiliza el autor para generar su página web.

Si este u otro contenido que creo te resulta interesante, siempre puedes agradecérmelo mediante una donación en Liberapay. Pero tanto si donas como si no, todo el contenido que creo estará libre para que lo disfrutes.

Estos son los enlaces para acceder tanto a la versión original en inglés, como a mi traducción. Disfruta de la lectura:

Imagen: David Revoy
a silhouette of a person's head and shoulders, used as a default avatar

Charla y taller «Install Party» en Carcaixent organizada por Asociació Emancipació Comunitaria

Me congratula promocionar la charla y taller «Install Party» en Carcaixent (València) organizada por Asociació Emancipació Comunitaria, con la colaboración de la Asociación GNU/Linux València. Se trata de una nueva edición de la que ya han realizado algunas ediciones Más información, sigue leyendo.

Charla y taller «Install Party» en Carcaixent organizada por Asociació Emancipació Comunitaria

Nueva charla y taller «Install Party» en Los Anguijes (Albacete) organizada por Asociació Emanciació Comunitaria
Logo Emanciació Comunitaria

Las actividades presenciales de la comunidad GNU/Linux siguen en aumento tras el parón del COVID 19 y ya es rara la semana que no se hablen de unas cuantas.

Es por ello que me complace compartir con vosotros un nuevo evento del grupo de personas que en València está impulsado el Software Libre y temas relacionados con el empoderamiento de la sociedad que lleva por nombre Asociació Emanciació Comunitaria, que podéis encontrar en su Grupo y Canal de Telegram.

Es por ello que os invito a la charla y taller «Install Party» en Carcaixent (València) que se va a realizar el próximo sábado 17 de diciembre organizado conjuntamente con Mercat 10 (https://t.me/mercat10) y la Asociación GNU/Linux València.

Primera charla sobre el Software Libre e Install Party,

De esta forma se han organizado varias actividades:

  • 10:00 h: Primera charla sobre el Software Libre e Install Party, donde se explicará la importancia del software libre en una comunidad con democracia real y se iniciará la instalación de distros en los equipos (alerta, ¡haced copia de seguridad de vuestros datos!)
  • 17:00 h: Segunda charla sobre el Software Libre e Install Party, donde se repetirá la experiencia matinal.

Resumiendo, la información básica es:

  • Fecha: sábado, 17 de diciembre de 2022
  • Horario: A partir de las 10:00
  • Lugar: Mercat 10 Carcaixent
  • ¿Registro necesario? Si, plazas limitadas. Reserva en los siguientes teléfono 601219700 (Pasqual)

Si podéis asistir no os lo perdáis, seguro que no quedáis decepcionados.

Y como siempre, si quieres quedarte a comer puedes llevar comer vegano para compartir o puedes reservar tu ración de paella vegana.

La entrada Charla y taller «Install Party» en Carcaixent organizada por Asociació Emancipació Comunitaria se publicó primero en KDE Blog.

the avatar of Open Build Service

Notifications - Report of Build Failures for Web Notifications

You might already use the email channel to get notified about build failures on package builds. From now on you can also subscribe to receive those notifications through the web channel and review them directly in the Open Build Service. The checkboxes in the my/subscription area, that used to be disabled, are now usable. Just check the ones you are interested in for the web channel and start to receive the notifications for build failures...

a silhouette of a person's head and shoulders, used as a default avatar

Melawan Rasa Takut, Menyiasati Kekhawatiran

Saat mula pertama full wirausaha, saya sempat dihinggapi rasa takut dan khawatir. Takut jika keputusan wirausaha merupakan keputusan yang salah, khawatir jika gara-gara keputusan ini penghidupan dan pendapatan keluarga jadi terganggu. Saat memutuskan untuk full berwirausaha, saya sudah berkeluarga dengan 1 isteri dan 2 anak. Jika rencana saya gagal, bukan hanya saya yang tidak bisa makan, melainkan juga isteri dan anak, kira-kira begitu konsekuensinya.

Saat pertama kali ke luar negeri, saya takut nanti kebingungan saat di bandara tujuan. Takut nggak mengerti bahasanya, tulisannya, komunikasinya. Padahal pertama kali keluar hanya ke Thailand, namun tetap ada perasaan khawatir jika saya malah nyasar atau kebingungan di tujuan.

Bertahun-tahun saya tidak berani menyetir mobil, takut jika nubruk tembok, menyerempet kendaraan lain, terjebak macet di rel kereta dan lain-lain. Tiap kali mendengar berita soal mobil yang terbang menjebol tembok parkir atap gedung, saya membenar-benarkan alasan saya untuk tidak nyetir. “Tuh, bahaya kan kalau nggak ngerti, nginjek rem malah nginjek gas, mobil jadi terbang dan celaka….”

Ada banyak hal yang membuat saya takut, sejak saya kecil hingga dewasa. Bentuknya juga bermacam-macam. Karena rasa takut itu, saya cenderung untuk tidak mau menonjol, tidak mau ikut kegiatan, tidak mau melakukan hal-hal yang saya anggap akan membuat saya tambah takut.

Saya tidak mau aktif, karena khawatir ditunjuk jadi ketua kelas atau ketua kelompok atau ketua kegiatan. Nanti jadi banyak beban. Saya lebih baik jadi anak buah saja, tidak usah memikirkan tanggung jawab, tidak perlu dimarahi, tinggal ikut apa perintah ketua.

Padahal, rasa takut dan khawatir itu bukan sesuatu yang salah. Itu adalah perlindungan natural kita untuk mencegah hal-hal yang buruk. Yang menjadi masalah adalah jika kita malah tersandera oleh rasa takut dan khawatir sehingga malah berhenti beraktivitas atau tidak mau mengambil resiko, tanggung jawab dan petualangan baru.

Rasa takut dan khawatir itu wajar. Untuk menyiasatinya, kita bisa berusaha belajar untuk mempersiapkan diri sebaik-baiknya.

Saat saya mulai wirausaha, itu tidak serta merta saya hari ini wirausaha dan besoknya berhenti dari pekerjaan. Saya sempat menjalaninya beberapa lama, lebih dari satu tahun. Saya sudah membuat kalkulasi kebutuhan rumah tangga, prediksi pendapatan, analisa resiko dan lain-lain. Hasilnya adalah cukup menjanjikan, kecuali ada hal tertentu yang sifatnya force majeure dan membuat perkiraan saya kacau.

Dari persiapan itu, saya tinggal memutuskan, apakah saya akan tetap menahan diri untuk wirausaha dengan resiko penyesalan di masa tua karena saya tidak mencoba hal tersebut ataukah saya memilih untuk mencoba menjalankannya, dengan meminimalisir resiko yang ada. Akhirnya saya memutuskan untuk menjalankan rencana saya berwirausaha dan saya tidak menyesali perjalanan maupun hasil wirausaha tersebut.

Sebelum saya memutuskan keluar negeri pertama kali, saya membuat rencana negara yang saya kunjungi. Saya baca tulisan motivasi dari pak Rhenald Kasali yang mewajibkan mahasiswanya untuk keluar negeri demi memperluas wawasan. Saya cari tahu seluk beluk negara tujuan. Tips kesana, apa saja yang perlu dibawa, apa saja yang perlu disiapkan, makanan apa yang cocok hingga tempat-tempat menarik untuk dikunjungi. Gimana kalau nyasar? Nyasar itu bagian dari petualangan dan itu bisa menjadi tambahan cerita menarik dari perjalanan kita.

Untuk menyiasati rasa takut saat pertama kali mencoba nyetir, saya ambil kursus. Saya berusaha dapatkan ilmu dan teorinya. Setelah itu saya coba praktek. Saya mencoba tiap hari pulang pergi nyetir ke kantor. Pertama nyetir kecepatannya rendah sekali, mungkin bisa dibalap sepeda. Mungkin ada yang sebel karena saya nyetir terlalu lambat atau belok terlalu pelan atau lupa nyalakan lampu. Saat pertama nyetir saya lupa cara buka jendela, kwkwkw… Setelah nyetir hampir satu bulan saya masih belum tahu cara menyalakan wiper belakang. Toh saya bisa tetap nyetir karena pas kebetulan musim kemarau dan tidak hujan.

Kalau tanya ke orang, gimana bisa nyetir hingga terbiasa, jawabnya adalah dapatkan feeling. Gimana dapat feeling, ya sering nyetir. Apakah tidak takut saat parkir ke atas gedung? Tidak, kan sama saja hanya itu muter-muter. Kan kita juga bisa ukur seberapa banyak gas perlu kita injak.

Apa tidak takut saat terjebak macet di rel kereta? Ya takut lah. Tapi kan kita bisa antisipasi. Kalau memang sudah ning nong ning nong, jangan paksa menerobos seperti kita sedang bawa sepeda motor. Sudah berhenti saja, tunggu sampai aman. Bagaimana kalau pas palang dibuka, motor langsung tumplek didepan mobil? Ya jalankan pelan-pelan, kan semua orang nggak ada yang mau ditubruk juga kok.

Jadi jangan karena rasa takut lantas kita diam tidak mau melakukan apapun. Jangan karena khawatir kita lantas serba cari aman. Perahu kan nggak jalan kalau dia ada di dermaga terus. Dia jalan kalau dibawa ke laut, diterpa angin dan ombak. Sepanjang kita siapkan sebaik-baiknya, kita harusnya bisa menyiasati rasa takut dan khawatir itu karena kalaupun hasilnya tidak sesuai harapan, kita bisa mendapat pembelajaran dari hal itu.

Kalau kita sudah mencoba yang terbaik, soal hasil kan tinggal mengikuti jalan takdir kita.

a silhouette of a person's head and shoulders, used as a default avatar

/usr/bin/*ctl なプログラムが何をするのかを試してみました(loginctl)

この記事は openSUSE Advent Calendar 2022 の7日目です。

systemd が使われるようになると、daemon の制御とかのやり方は大きく変わりました。/etc/init.d にあるスクリプトから、systemd パッケージに含まれるコマンドを使うようになってきました。それらのコマンドは、xxxxxctl という、末尾に ctl が含まれるものが多いように感じました。そこで、/usr/bin/ の中にある、末尾が ctl なプログラムがどんなものかを簡単に調べて見ることにしました。

今回は、loginctl を紹介します。

コマンド名: localectl
パッケージ: systemd-249.12-150400.8.13.1.x86_64
動作: ○

詳細:
loginctl は、systemd の login マネージャからの情報を表示したり設定するためのツールです。表示に関しては、従来の w コマンドや ps コマンド などの機能が含まれています。たとえば、現在ログインしている情報は、下記のように表示されます。

%loginctl
SESSION  UID USER   SEAT  TTY
     11 1000 ribbon       pts/0
     12 1000 ribbon       pts/2
     13    0 root
      6 1000 ribbon seat0 tty2

w コマンドではこのように表示されます。表示する内容がかなり異なります。

%w
 20:10:49 up 12:55,  5 users,  load average: 0.00, 0.01, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
ribbon   :        :                15:20   ?xdm?   2:18   0.07s gdm-session-worker [pam/gdm-password]
ribbon   tty2     tty2             15:20   12:55m  0.08s  0.08s /usr/lib/gnome-session-binary
ribbon   pts/0    192.168.X.Y      18:17   10:29   0.28s  0.00s less
ribbon   pts/2    192.168.X.Y      19:46    1.00s  0.11s  0.01s w
root     pts/3    ::1              20:02    7:58   0.09s  0.09s -bash

自分自身のセッション情報は session-status サブコマンドで表示できます。

%loginctl session-status
12 - ribbon (1000)
           Since: Sat 2022-12-03 19:46:34 JST; 28min ago
          Leader: 7798 (sshd)
             TTY: pts/2
          Remote: 192.168.X.Y
         Service: sshd; type tty; class user
           State: active
            Unit: session-12.scope
                  ┣ 7798 "sshd: ribbon [priv]" ""
                  ┣ 7800 "sshd: ribbon@pts/2" "" ""
                  ┣ 7801 -bash
                  ┣ 8134 loginctl session-status
                  ┗ 8135 less

さらに、 user-status サブコマンドで、詳細な情報を得ることができます。pstree コマンドにも似た感じです。

%loginctl user-status
ribbon (1000)
           Since: Sat 2022-12-03 15:20:50 JST; 5h 8min ago
           State: active
        Sessions: 12 11 *6
          Linger: no
            Unit: user-1000.slice
                  ┣session-11.scope
                  ┃┣ 7431 "sshd: ribbon [priv]" ""
                  ┃┣ 7437 "sshd: ribbon@pts/0" "" ""
                  ┃┣ 7438 -bash
                  ┃┣ 7780 man loginctl
                  ┃┗ 7792 less
                  ┣session-12.scope
                  ┃┣ 7798 "sshd: ribbon [priv]" ""
                  ┃┣ 7800 "sshd: ribbon@pts/2" "" ""
                  ┃┣ 7801 -bash
                  ┃┣ 8270 loginctl user-status
                  ┃┗ 8271 less
                  ┣session-6.scope
                  ┃┣ 4748 "gdm-session-worker [pam/gdm-password]"
                  ┃┣ 4778 /usr/bin/gnome-keyring-daemon --daemonize --login
                  ┃┣ 4784 /usr/lib/gdm/gdm-wayland-session /usr/bin/gnome-session
                  ┃┣ 4788 /usr/lib/gnome-session-binary
                  ┃┗ 7997 /usr/bin/ssh-agent -D -a /run/user/1000/keyring/.ssh
                  ┗user@1000.service
                    ┣app.slice
                    ┃┣app-gnome-YaST2\x2dorg.opensuse.yast.LAN-5394.scope
                    ┃┃┣ 5523 dbus-launch --autolaunch 61ee5253e44f403c9918308e232c84b8 --binary-syntax>
                    ┃┃┗ 5524 /usr/bin/dbus-daemon --syslog-only --fork --print-pid 5 --print-address 7>
                    ┃┣app-gnome-gnome\x2dsoftware\x2dservice-5036.scope
                    ┃┃┗ 5036 /usr/bin/gnome-software --gapplication-service
                    ┃┣app-gnome-org.gnome.Evolution\x2dalarm\x2dnotify-5045.scope
                    ┃┃┗ 5045 /usr/lib/evolution-data-server/evolution-data-server/evolution-alarm-noti>
                    ┃┣app-gnome-org.gnome.SettingsDaemon.DiskUtilityNotify-5018.scope
                    ┃┃┗ 5018 /usr/lib/gsd-disk-utility-notify

そのほかに、セッションを強制切断する kill-session サブコマンドがあります。たとえば、ssh でログインしているセッションを強制切断するためには、
1) w コマンドでユーザを調べる
2) そのユーザが使っている sshd プロセスを ps コマンドで調べる
3) kill コマンドでそのプロセスを終了させる。
というステップが必要でしたが、loginctl では、セッション番号を表示させた後、そのセッションを終了するコマンドを入力することで作業が行えますので、手間が減ります。

# loginctl
SESSION  UID USER   SEAT  TTY
     11 1000 ribbon       pts/0
     12 1000 ribbon       pts/2
     13    0 root
      6 1000 ribbon seat0 tty2

4 sessions listed.
# loginctl kill-session 13
# loginctl
SESSION  UID USER   SEAT  TTY
     11 1000 ribbon       pts/0
     12 1000 ribbon       pts/2
      6 1000 ribbon seat0 tty2

3 sessions listed.

loginctl は、表示形式が見やすいので、w コマンドなどと併用すると便利でしょう。