- int x;
-
- pnd_log ( pndn_error, "CRITICAL BATTERY LEVEL -- shutdown the system down! Invoke: %s\n",
- b_shutdown_script );
-
- if ( ( x = fork() ) < 0 ) {
- pnd_log ( pndn_error, "ERROR: Couldn't fork()\n" );
- exit ( -3 );
+ if (b_warned == 0) {
+ // Avoid warning again till re-powered
+ b_warned = 1;
+ int x;
+ pnd_log ( pndn_error, "Battery Current: %d\n", mamps );
+ pnd_log ( pndn_error, "CRITICAL BATTERY LEVEL -- shutdown the system down! Invoke: %s\n",
+ b_shutdown_script );
+
+ if ( ( x = fork() ) < 0 ) {
+ pnd_log ( pndn_error, "ERROR: Couldn't fork()\n" );
+ exit ( -3 );
+ }
+
+ if ( x == 0 ) {
+ char value [ 100 ];
+ sprintf ( value, "%d", b_shutdelay );
+ execl ( b_shutdown_script, b_shutdown_script, value, (char*)NULL );
+ pnd_log ( pndn_error, "ERROR: Couldn't exec(%s)\n", b_shutdown_script );
+ exit ( -4 );
+ }