Project

General

Profile

« Previous | Next » 

Revision e00916c1

Added by Jim Pingle over 2 years ago

Locate cron jobs more accurately. Fixes #13833

View differences:

src/etc/inc/services.inc
3456 3456

  
3457 3457
	init_config_arr(['cron','item']);
3458 3458

  
3459
	$x = 0;
3460
	foreach (config_get_path('cron/item', []) as $item) {
3459
	$job = null;
3460
	foreach (config_get_path('cron/item', []) as $idx => $item) {
3461 3461
		if (strstr($item['command'], $command)) {
3462 3462
			$is_installed = true;
3463
			$job = $idx;
3463 3464
			break;
3464 3465
		}
3465
		$x++;
3466 3466
	}
3467 3467

  
3468 3468
	if ($active) {
......
3480 3480
			config_set_path('cron/item', $cron_items);
3481 3481
			$change_message = "Installed cron job for %s";
3482 3482
		} else {
3483
			if (config_get_path("cron/item/{$x}") == $cron_item) {
3483
			if (config_get_path("cron/item/{$job}") == $cron_item) {
3484 3484
				$cron_changed = false;
3485 3485
			} else {
3486
				config_set_path("cron/item/{$x}", $cron_item);
3486
				config_set_path("cron/item/{$job}", $cron_item);
3487 3487
				$change_message = "Updated cron job for %s";
3488 3488
			}
3489 3489
		}
3490 3490
	} else {
3491 3491
		if ($is_installed == true) {
3492
			config_del_path("cron/item/{$x}");
3492
			config_del_path("cron/item/{$job}");
3493 3493
			$change_message = "Removed cron job for %s";
3494 3494
		} else {
3495 3495
			$cron_changed = false;

Also available in: Unified diff