systemdで90年代のタイムアウトをスキップする方法


15

systemdで90秒のタイムアウトを対話的にスキップすることは可能ですか?たとえば、ディスクが使用可能になるのを待っているとき、またはユーザーがログアウトするのを待っているときはどうでしょうか?私はそれが最終的に失敗することを知っているので、今すぐ失敗させることができますか?どうしようもなく画面を見つめるのが嫌いです。

回答:


11

次の2つのオプションがあります。

  1. あなたは、設定することができますTimeoutStopSpec=待つために(秒*)は、特定の値に特定のUNITに。infinitySIGKILLが送信されないように設定することもできます(デバッグが困難な暴走したサービスになってしまう可能性があるため、お勧めしません)。

  2. セットDefaultTimeoutStopSec=内部/etc/systemd/system.conf(またはuser.conf、またはのいずれかで、*.d持っていないすべてのユニットというデフォルト値にディレクトリ)TimeoutStopSpec=指定が使用されます。この設定のデフォルトは、通常表示される90年代です。

マニュアルページの参照:

  • man systemd.service にとって TimeoutStopSpec=
  • man systemd-system.conf にとって DefaultTimeoutStopSec=

* systemdは、「2min 3s」などの時間仕様も受け入れます。それは男性に広く説明されています。


9
これはインタラクティブではありません。systemdがすでに90年代をカウントダウンしているとき、これらの変更を行うには遅すぎて、どうしようもなく座っていなければなりません。
user7610

@JiriDanek-それはsystemdがインタラクティブではなく、そうすることを意図していないためです。ttyプロセス(90が表示されます)は、init(sytemd)の子として実行されます。つまり、90を表示するプロセス(getty)は、それらをカウントするプロセス(systemd)の子です。さらに、systemdはほとんどの信号を無視します。systemdは、ttyの前にいるランダムなユーザーによって制御されることを意図していません(これは大きなセキュリティリスクになります)。
grochmal

4
私は主にデスクトップユーザーであるため、物事が異なるように見える傾向があります。トーバルズの娘のプリンターを覚えていますか?多くの設計上の不備は、セキュリティ上の懸念から正当化できます。
user7610

@JiriDanek-systemdは問題ではなく、実際の攻撃ベクトルになります。適切なタイミングで正しいシグナルを狙うことができれば、システムサービス(SELinuxなど)を(一般ユーザーとして)無効にすることができます。/etc/systemd/system.conに移動し、DefaultTimeout = 3を追加します。または、エラーが発生しているサービスを修正してください。一部のサービスが常に失敗するという事実は、systemdの設計不良ではなく、ユニットファイルを作成した人の設計不良です。
grochmal

私の場合、ユニットファイルの作成者は無害です。ディスクUUIDをコピーアンドペーストするときにタイプミスをしました。systemdがそれをマウントするのをあきらめ、システムに入り込んで問題を修正するまで、1分半待たなければならないのは、単にいらいらすることです。長いタイムアウトは実際にはここで意味があります。私が管理者に知らない場合を除きます。
user7610


6

/etc/systemd/system.confの行のコメントを解除できます。

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

そして、適切と思われる値に変更します。


7
他の答えと同じですが、これはインタラクティブではありません。systemdがすでに90年代をカウントダウンしているとき、これらの変更を行うには遅すぎて、どうしようもなく座っていなければなりません。
user7610
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.