timedatectl
RHELサーバーバージョン7.6では、奇妙なコマンド例外が発生します。
timedatectl set-timezone UTC
Failed to create bus connection: Resource temporarily unavailable
この例外に基づいて、Google 検索で dbus サービスを再起動すると役に立つことがわかりました。サービスを通じて dbus を再起動してみました。
systemctl restar dbus.service
しかし、我々は得る
Error getting authority: Error initializing authority: Could not connect: Resource temporarily unavailable (g-io-error-quark, 27)
dbus
デバッグの後、私たちは次のようにPIDを終了することが解決策であることを発見しました。kill -9
〜のように
ps -ef | grep dbus
dbus 775 1 0 May22 ? 00:27:30 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
kill 775
それではもう一度やりましょう。
timedatectl set-timezone UTC
上記は成功です
だから解決策が見つかるまで私たちの手順に従ってください。
私たちの回避策が「バス接続を作成できませんでした:リソースを一時的に使用できません」の正しい解決策であることを知りたいです。
そして、「バス接続を作成できませんでした:リソースを一時的に使用できません」という例外が発生するのはなぜですか?timedatectl
Dバスとは?
D-Busは、異なるソースのアプリケーション間の通信システムです。このシステムを介して(D-Busを実装している場合)、独自のアプリケーションを呼び出すこともできます。ライブラリはスタンドアロンプログラムではなく実行可能ファイルの一部であるため、ライブラリとは異なる役割を果たします。 D-Busのアイデアは、Windows OLE、COM、ActiveXオブジェクトに触発されました。 Windows COM オブジェクトは、他のプログラムからすべてのプログラムを呼び出す簡単な方法を提供し、同じプログラミング言語を使用せずに、あるプログラムを別のプログラムに直感的に含めることもできます。 D-Busはそれほど発展していませんが、UNIXに不十分な通信を提供しました。
答え1
言及した「リソースを一時的に使用できません」というエラーは、通常、グローバルまたはローカルのリソース制限に達したときに発生します。
つまり、またはまたはulimit
のグローバル値です。/sys
/proc
コマンドを呼び出すときにコマンドラインで最も一般的な理由は、通常スレッド制限に達したためです。
ulimit -a
この値が高いことを確認することをお勧めします。
ノート:ジョブulimitは次の目的で使用されます。仕事プロセス(すべてのスレッドを含む)ではないため、信頼できる数を取得するには、次の作業を行う必要があります。$(pgrep -wu your_user | wc -l)