노트북이 너무 뜨거워지면 특정 명령을 실행해야 합니다(예: 노트북이 심하게 종료되어 하드 드라이브가 손상되는 것을 방지하기 위해 Firefox 또는 Virtualbox에 중지 신호를 보냅니다).
주기적으로 온도를 확인하면서 무한 반복하는 프로그램을 쉽게 작성할 수 있습니다.이것질문에 대한 답변은 이 접근 방식을 사용합니다.
그러나 나는 내 자신의 데몬을 실행하는 것을 피하고 대신 내 프로그램을 기존 데몬에 연결하고 싶습니다. 예를 들어 시스템 로그에서 다음을 볼 수 있습니다.
5월 5일 02:52:27 myhostname 커널: [9141.022262] intel ips 0000:00:1f.6: MCP 제한 초과: 평균 임시 9276, 제한 9000
따라서 내 컴퓨터에는 온도를 확인하고 조건에 따라 특정 작업을 트리거하는 코드가 이미 있습니다(예: 온도가 9000을 초과할 때 경고 메시지 기록). 또 다른 예는 동일한 온도에 따라 팬 속도가 빨라지는 것입니다.
내 프로그램을 내 컴퓨터의 기존 코드에 어떻게 연결합니까? 팬 드라이버 속도 변경 및 코어 온도 경고 메시지가 동일한 코드로 실행됩니까? 이것을 어떻게 찾을 수 있나요?
답변1
이런 종류의 일을 모니터링하려면 일종의 데몬을 실행해야 합니다. 하드웨어 센서는 단순히 비활성 데이터 소스이며 일반적으로 자체적으로 작업을 수행할 수 없습니다.
나가서 사용자 정의 코드를 작성하고 싶다면 설치를 고려할 수 있습니다.collectd-sensors
팩(귀하의 배포판은 다른 이름으로 부를 수 있습니다.) 온도 기록을 유지합니다. 추적 온도 데이터를 구성한 후에는 다음 collectd
을 수행할 수 있어야 합니다.수집 알림 설정그러한 활동을 위해.
답변2
내 프로그램을 이 코드에 어떻게 첨부할 수 있나요?
이 특정 출력은 커널에서 나오므로가능한이를 위해 커널 모듈을 작성하는 기능, 또는 정보에 전역적으로 액세스할 수 없는 경우 기존 모듈을 패치할 수 있습니다.
이미 WRT 데몬이 실행 중이므로 다음을 사용할 수 있습니다.cron
그리고 1분마다 확인해보세요.
분 단위보다 더 세밀한 단위를 원한다면 직접 루프를 작성하거나 이미 이를 수행할 수 있는 도구를 찾아야 합니다. 일부 GUI 시스템 모니터에서는 임의 프로세스를 실행할 수 있는 경고를 구성할 수 있습니다 gkrellm
. 구글링만으로는 알기 어렵습니다 conky
.)
답변3
DBUS 또는 ACPI 이벤트는 이러한 "이벤트"를 잠그고 원하는 작업을 수행하도록 명령을 실행하는 장소인 것 같습니다. 나는 dbus-monitor
이러한 이벤트를 "캡처"한 다음 스크립트를 실행하는 데 사용할 수 있는 방법을 보여주었습니다 .
다음 제목의 U&L Q&A에 대한 내 답변을 확인하세요.libnotify를 사용하여 스크립트를 실행할 수 있습니까?
답변4
이를 위해서는 로그 메시지를 실행하는 것과 동일한 온도에서 Firefox/Virtualbox의 트리거를 사용하고 syslog-ng를 실행할 의지가 있어야 합니다.
syslog-ng는 특정 프로그램이나 특정 콘텐츠에서 로그로 전송된 메시지에 의해 트리거되는 임의 코드를 실행하도록 구성할 수 있습니다.
syslog-ng.conf에서 새 대상을 추가합니다.
destination d_high_temp { program("/path/to/OPs/temperature_script"); };
새로운 필터도 있어요
filter f_high_temp { match("MCP limit exceeded" value("MESSAGE")); };
마침내
log { source(src); filter(f_high_temp); destination(d_high_temp); };
더 이상 데몬이 실행되지 않지만 원하는 프로그램은 모두 종료할 수 있습니다.