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)