• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
main(int argc,char ** argv)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 < getdtablesize(); 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