LINUX+ 예외 근본 원인 찾기 - 버스 연결 생성 실패: 리소스를 일시적으로 사용할 수 없음

LINUX+ 예외 근본 원인 찾기 - 버스 연결 생성 실패: 리소스를 일시적으로 사용할 수 없음

timedatectlRHEL 서버 버전 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)

관련 정보