diff options
Diffstat (limited to 'initd')
| -rw-r--r-- | initd/supervisor.c | 8 | 
1 files changed, 3 insertions, 5 deletions
| diff --git a/initd/supervisor.c b/initd/supervisor.c index 3f157bf..a11c6b8 100644 --- a/initd/supervisor.c +++ b/initd/supervisor.c @@ -82,9 +82,9 @@ static void handle_terminated_service(service_t *svc)  			break;  		if (svc->rspwn_limit > 0) { -			svc->rspwn_limit -= 1; +			svc->rspwn_count += 1; -			if (svc->rspwn_limit == 0) { +			if (svc->rspwn_count >= svc->rspwn_limit) {  				print_status(svc->desc, STATUS_FAIL, false);  				goto out_failure;  			} @@ -319,9 +319,7 @@ void supervisor_start(int id)  	}  	return;  found: -	if (svc->type == SVC_RESPAWN) -		svc->rspwn_limit = 0; - +	svc->rspwn_count = 0;  	svc->flags &= ~SVC_FLAG_ADMIN_STOPPED;  	svc->next = queue;  	queue = svc; | 
