Bagaimana saya melewati batas waktu 90-an di systemd


15

Apakah mungkin untuk secara interaktif melewati batas waktu 90-an di systemd? Misalnya, ketika menunggu disk tersedia atau pengguna keluar? Saya tahu itu akan gagal pada akhirnya, jadi bisakah saya membuatnya gagal sekarang? Aku benci hanya menatap layar tanpa daya.

Jawaban:


11

Anda memiliki dua opsi:

  1. Anda dapat mengatur TimeoutStopSpec=pada UNIT tertentu ke nilai tertentu (dalam detik *) untuk menunggu. Anda juga dapat mengaturnya agar infinitySIGKILL tidak akan pernah dikirim (tidak disarankan karena Anda mungkin berakhir dengan layanan pelarian yang sulit di-debug).

  2. Tetapkan DefaultTimeoutStopSec=di dalam /etc/systemd/system.conf(atau user.conf, atau di salah satu *.ddirektori) ke nilai default yang TimeoutStopSpec=akan digunakan oleh semua UNIT yang tidak ditentukan. Tunarungu untuk pengaturan ini adalah 90-an yang biasanya Anda lihat.

Referensi halaman manual:

  • man systemd.service untuk TimeoutStopSpec=
  • man systemd-system.conf untuk DefaultTimeoutStopSec=

* systemd juga menerima spesifikasi waktu, mis. "2min 3s". Itu dijelaskan secara luas pada pria itu.


9
Ini tidak interaktif. Ketika systemd sudah menghitung mundur tahun 90-an, sudah terlambat untuk melakukan perubahan ini dan saya dipaksa untuk duduk meskipun tidak berdaya.
user7610

@JiriDanek - itu karena systemd tidak interaktif, itu tidak dimaksudkan. Proses tty Anda (di mana Anda melihat 90-an) berjalan sebagai anak init (sytemd), yaitu proses yang menunjukkan (getty) 90-an adalah anak dari proses menghitungnya (systemd). Selain itu, systemd mengabaikan sebagian besar sinyal. systemd tidak dimaksudkan untuk dikendalikan oleh pengguna acak di depan tty (itu akan menjadi risiko keamanan yang sangat besar).
grochmal

4
Saya terutama pengguna desktop, jadi saya cenderung melihat hal-hal secara berbeda. Ingat printer putri Torvalds ? Banyak kekurangan desain dapat dibenarkan karena masalah keamanan.
user7610

@JiriDanek - systemd bukan a masalah , itu akan menjadi vektor serangan yang sebenarnya. Jika Anda dapat mengarahkan sinyal yang benar pada saat yang tepat, Anda dapat (sebagai pengguna umum) menonaktifkan layanan sistem (mis. SELinux). Masuk saja ke /etc/systemd/system.con dan tambahkan DefaultTimeout = 3. Atau, lebih baik, perbaiki layanan yang gagal. Fakta bahwa beberapa layanan selalu gagal bukanlah desain yang buruk dari systemd, adalah desain yang buruk dari orang yang menulis file unit.
grochmal

Dalam kasus khusus saya, penulis file unit tidak bersalah. Saya baru saja membuat kesalahan ketik saat menyalin-menempel disk UUID. Saya merasa menjengkelkan karena harus menunggu satu setengah menit penuh sebelum systemd menyerah memasang itu dan membiarkan saya masuk ke sistem dan memperbaiki masalah. Batas waktu lama sebenarnya masuk akal di sini. Kecuali ketika saya admin tahu itu tidak.
user7610


6

Anda dapat menghapus tanda komentar pada /etc/systemd/system.confbaris:

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

Dan ubah nilainya menjadi apa yang Anda anggap pantas.


7
Sama seperti jawaban lainnya, ini bukan interaktif. Ketika systemd sudah menghitung mundur tahun 90-an, sudah terlambat untuk melakukan perubahan ini dan saya dipaksa untuk duduk meskipun tidak berdaya.
user7610
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.