Home | History | Annotate | Download | only in adb_reboot
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include <sys/types.h>
      6 #include <sys/stat.h>
      7 #include <stdio.h>
      8 #include <stdlib.h>
      9 #include <time.h>
     10 #include <unistd.h>
     11 
     12 int main(int argc, char ** argv) {
     13   int i = fork();
     14   struct stat ft;
     15   time_t ct;
     16 
     17   if (i < 0) {
     18     printf("fork error");
     19     return 1;
     20   }
     21   if (i > 0)
     22     return 0;
     23 
     24   /* child (daemon) continues */
     25   int j;
     26   for (j = 0; j < sysconf(_SC_OPEN_MAX); j++)
     27     close(j);
     28 
     29   setsid(); /* obtain a new process group */
     30 
     31   while (1) {
     32     sleep(120);
     33 
     34     stat("/sdcard/host_heartbeat", &ft);
     35     time(&ct);
     36     if (ct - ft.st_mtime  > 120) {
     37       /* File was not touched for some time. */
     38       system("su -c reboot");
     39     }
     40   }
     41 
     42   return 0;
     43 }
     44