]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - src/misc-progs/smartctrl.c
Merge branch 'master' of git://git.ipfire.org/ipfire-2.x
[people/pmueller/ipfire-2.x.git] / src / misc-progs / smartctrl.c
index b3a40629bcf94ad61fe761dcf3522b550d73c9a5..d9dd8463fb15c32196ad92a96b456337d264026f 100644 (file)
 #include <fcntl.h>
 #include "setuid.h"
 
+#define BUFFER_SIZE 1024
+
+char command[BUFFER_SIZE]; 
+
 int main(int argc, char *argv[]) {
 
-       if (!(initsetuid()))
-               exit(1);
+        if (!(initsetuid()))
+                exit(1);
+
+        if (argc < 2) {
+                fprintf(stderr, "\nNo argument given.\n\nsmartctrl <device>\n\n");
+                exit(1);
+        }
 
-       if (argc < 2) {
-               fprintf(stderr, "\nNo argument given.\n\nsmartctrl <device>\n\n");
-               exit(1);
+
+        sprintf(command, "/var/run/hddshutdown-%s", argv[1]);
+        FILE *fp = fopen(command,"r");
+       if( fp ) {
+               fclose(fp);
+               printf("\nDisk %s is in Standby. Do nothing because we won't wakeup\n",argv[1]);
+                exit(1);
        }
-       safe_system("smartctl -iHA /dev/%s", argv[1]);
 
-       return 0;
+        sprintf(command, "smartctl -iHA /dev/%s", argv[1]);
+        safe_system(command);
+
+        return 0;
 }