. * */ // Unfortunately we need this class for shutdown function class my_temporary_cron_class { public static $sent = false; } function handleUnexpectedShutdown() { if( !my_temporary_cron_class::$sent ){ if( OC::$CLI ){ echo 'Unexpected error!'.PHP_EOL; } else{ OC_JSON::error( array( 'data' => array( 'message' => 'Unexpected error!'))); } } } $RUNTIME_NOSETUPFS = true; require_once('lib/base.php'); // Don't do anything if ownCloud has not been installed if( !OC_Config::getValue( 'installed', false )){ exit( 0 ); } // Handle unexpected errors register_shutdown_function('handleUnexpectedShutdown'); $appmode = OC_Appconfig::getValue( 'core', 'backgroundjobs_mode', 'ajax' ); if( OC::$CLI ){ if( $appmode != 'cron' ){ OC_Appconfig::setValue( 'core', 'backgroundjobs_mode', 'cron' ); } // check if backgroundjobs is still running $pid = OC_Appconfig::getValue( 'core', 'backgroundjobs_pid', false ); if( $pid !== false ){ // FIXME: check if $pid is still alive (*nix/mswin). if so then exit } // save pid OC_Appconfig::setValue( 'core', 'backgroundjobs_pid', getmypid()); // Work OC_BackgroundJob_Worker::doAllSteps(); } else{ if( $appmode == 'cron' ){ OC_JSON::error( array( 'data' => array( 'message' => 'Backgroundjobs are using system cron!'))); } else{ OC_BackgroundJob_Worker::doNextStep(); OC_JSON::success(); } } my_temporary_cron_class::$sent = true; exit();