Systemd'deki 90'lı zaman aşımını nasıl atlarım


15

Systemd'deki 90'lı zaman aşımını etkileşimli olarak atlamak mümkün mü? Örneğin, bir diskin kullanılabilir olmasını veya kullanıcının oturumu kapatmasını beklerken? Sonunda başarısız olacağını biliyorum, o yüzden şimdi başarısız yapabilir miyim? Çaresizce ekrana bakmaktan nefret ediyorum.

Yanıtlar:


11

İki seçeneğiniz var:

  1. TimeoutStopSpec=Beklemek için belirli bir birimi belirli bir değere (saniye cinsinden *) ayarlayabilirsiniz . Ayrıca infinity, bu durumda SIGKILL'in asla gönderilmeyeceğini de ayarlayabilirsiniz (hata ayıklaması zor olan kaçak servislerle sonuçlanabileceğiniz için önerilmez).

  2. Set DefaultTimeoutStopSec=içine /etc/systemd/system.conf(veya user.conf, ya birinde *.dsahip olmayan tüm birimlerin bir varsayılan değere dizinlere) TimeoutStopSpec=Belirtilen kullanacaktır. Bu ayarın güvenilirliği, normalde gördüğünüz 90'lardır.

Man sayfası referansları:

  • man systemd.service için TimeoutStopSpec=
  • man systemd-system.conf için DefaultTimeoutStopSec=

* systemd ayrıca zaman özelliklerini de kabul eder, örneğin "2dk 3s". Bu adamda kapsamlı bir şekilde tanımlanmıştır.


10
Bu etkileşimli değil. Systemd zaten 90'ları geri sayıyorsa, bu değişiklikleri yapmak için çok geç ve çaresizce oturmaya zorlandım.
user7610

@JiriDanek - çünkü systemd etkileşimli değil, olması gerekiyordu. Tty işleminiz (90'ları gördüğünüz) bir init (sytemd) alt öğesi olarak çalışır, yani 90'ları gösteren işlem (getty) onları sayma işleminin (systemd) bir çocuğudur. Dahası, systemd çoğu sinyali yok sayar. systemd, tty'nin önünde rastgele bir kullanıcı tarafından kontrol edilmek üzere tasarlanmamıştır (bu büyük bir güvenlik riski olacaktır).
grochmal

4
Öncelikle bir masaüstü kullanıcısıyım, bu yüzden farklı şeyler görme eğilimindeyim. Torvalds'ın kızının yazıcısını hatırlıyor musunuz? Birçok tasarım yetersizliği güvenlik kaygılarıyla haklı görülebilir.
user7610

@JiriDanek - systemd bir endişe değil , gerçek bir saldırı vektörü olurdu. Doğru anda doğru bir sinyali hedefleyebildiyseniz (ortak kullanıcı olarak) bir sistem hizmetini (örneğin SELinux) devre dışı bırakabilirsiniz. /Etc/systemd/system.con adresine gidin ve DefaultTimeout = 3 ekleyin. Ya da daha iyisi, başarısız olan hizmeti düzeltin. Bazı hizmetlerin her zaman başarısız olması, systemd'nin kötü tasarımı değildir, birim dosyasını yazan kişinin kötü tasarımıdır.
grochmal

Benim özel durumumda, birim dosyasının yazarı masumdur. Bir disk UUID'sini kopyalarken bir yazım hatası yaptım. Sadece systemd montajdan vazgeçmeden ve sisteme girip sorunu çözmeme izin vermeden önce tam bir buçuk dakika beklemek zorunda olan rahatsız edici buldum. Uzun zaman aşımı aslında mantıklı. Ben yönetici bilmiyorum hariç.
user7610 16:16


6

/etc/systemd/system.confSatırlarda rahatsızlık verebilirsiniz :

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

Ve değeri uygun gördüğünüz şekilde değiştirin.


7
Diğer cevapla aynı, bu interaktif değil. Systemd zaten 90'ları geri sayıyorsa, bu değişiklikleri yapmak için çok geç ve çaresizce oturmaya zorlandım.
user7610
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.