status-loadavg/loadavg.c
author Stiletto <blasux@blasux.ru>
Mon, 20 Oct 2014 22:59:08 +0400
changeset 1 3e9290bf7249
child 3 dae770da6416
permissions -rw-r--r--
Some sample status scripts
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     1
#define _DEFAULT_SOURCE
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     2
#include <stdio.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     3
#include <stdlib.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     4
#include <unistd.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     5
#include <string.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     6
#include <errno.h>
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     7
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     8
#include "config.h"
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
     9
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    10
int
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    11
main(void)
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    12
{
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    13
    while (1) {
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    14
        double avgs[3];
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    15
        char *cols[3];
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    16
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    17
        if (getloadavg(avgs, 3) < 0) {
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    18
            perror("getloadavg");
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    19
            exit(1);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    20
        }
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    21
        for ( int i = 0; i < 3; i++ ) {
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    22
            if ( avgs[i] <= GREEN )
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    23
                cols[i] = "color='green'";
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    24
            else if ( avgs[i] <= ORANGE )
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    25
                cols[i] = "color='orange'";
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    26
            else
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    27
                cols[i] = "color='red'";
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    28
        }
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    29
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    30
        printf("<span %s>%.2f</span> <span %s>%.2f</span> <span %s>%.2f</span>\n",
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    31
            cols[0], avgs[0], cols[1], avgs[1], cols[2], avgs[2]);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    32
        fflush(stdout);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    33
        sleep(UPDATE_PERIOD);
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    34
    }
3e9290bf7249 Some sample status scripts
Stiletto <blasux@blasux.ru>
parents:
diff changeset
    35
}