SMARTディスク監視用の新しいモジュールを作成することを考えています。 私の知る限り、これを実装するには3つのオプションがあります。
libatasmartを使用することをお勧めします。これにより、依存関係が1つだけ追加されたネイティブサポートが追加されます。
root権限なしでlibatasmartを使用できるかどうか誰かが知っていますか?
libatasmart
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <atasmart.h>
int main(void) {
uint64_t mkelvin = 0;
const char *device = "/dev/sda";
SkDisk *d = NULL;
if (-1 == (sk_disk_open(device, &d))) {
fprintf(stderr, "Failed to open disk %s: %s\n", device, strerror(errno));
return 1;
}
if (-1 == (sk_disk_smart_read_data(d))) {
fprintf(stderr, "Failed to read SMART data: %s\n", strerror(errno));
goto finish;
}
if (-1 == (sk_disk_smart_get_temperature(d, &mkelvin))) {
fprintf(stderr, "Failed to get temperature: %s\n", strerror(errno));
goto finish;
}
printf("%llu\n", (unsigned long long)mkelvin);
finish:
if (NULL != d) {
sk_disk_free(d);
}
return 0;
}
smartmontoolsはクロスプラットフォームで利用可能であり、* BSDフレーバーもその恩恵を受けます。
init systemdを使用しない私のような人は、追加の依存関係をインストールすることを余儀なくされます。
root権限なしでlibatasmartを使用できるかどうか誰かが知っていますか?
visudo
computer_name ALL=NOPASSWD:/usr/bin/program_name
@fonicOMFG 。 これが実装されるのを待ちきれません。 :悲鳴:
最も参考になるコメント
@fonicOMFG 。 これが実装されるのを待ちきれません。 :悲鳴: