Eine ueberarbeitete Version des smartctrl von Arne.
authorms <ms@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Thu, 27 Sep 2007 18:24:06 +0000 (18:24 +0000)
committerms <ms@ea5c0bd1-69bd-2848-81d8-4f18e57aeed8>
Thu, 27 Sep 2007 18:24:06 +0000 (18:24 +0000)
git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@927 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8

src/misc-progs/smartctrl.c

index b5a4427..6b2bd1e 100644 (file)
@@ -19,15 +19,25 @@ 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, "/tmp/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);
        }
-       sprintf(command, "smartctl -iHA /dev/%s", argv[1]);
-       safe_system(command);
 
-       return 0;
+        sprintf(command, "smartctl -iHA -d ata /dev/%s", argv[1]);
+        safe_system(command);
+
+        return 0;
 }