mirror of
https://github.com/pygos/init.git
synced 2024-11-22 03:09:46 +01:00
initd: don't start runsvc for services without exec block
First in rdsvc, tag the services that *do* have exec lines, even if we don't read them. Second, if a service does not have that flag set, don't try to execute it. Signed-off-by: David Oberhollenzer <goliath@infraroot.at>
This commit is contained in:
parent
390175c406
commit
e21840cfce
3 changed files with 13 additions and 1 deletions
|
@ -156,6 +156,14 @@ bool supervisor_process_queues(void)
|
||||||
svc = queue;
|
svc = queue;
|
||||||
queue = queue->next;
|
queue = queue->next;
|
||||||
|
|
||||||
|
if (!(svc->flags & SVC_FLAG_HAS_EXEC)) {
|
||||||
|
print_status(svc->desc, STATUS_OK, false);
|
||||||
|
svc->status = EXIT_SUCCESS;
|
||||||
|
svc->next = completed;
|
||||||
|
completed = svc;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
if (start_service(svc) != 0)
|
if (start_service(svc) != 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -171,7 +179,7 @@ bool supervisor_process_queues(void)
|
||||||
singleshot += 1;
|
singleshot += 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
out:
|
||||||
if (singleshot == 0 && queue == NULL && !waiting)
|
if (singleshot == 0 && queue == NULL && !waiting)
|
||||||
target_completed(target);
|
target_completed(target);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -41,6 +41,8 @@ enum {
|
||||||
enum {
|
enum {
|
||||||
/* truncate stdout */
|
/* truncate stdout */
|
||||||
SVC_FLAG_TRUNCATE_OUT = 0x01,
|
SVC_FLAG_TRUNCATE_OUT = 0x01,
|
||||||
|
|
||||||
|
SVC_FLAG_HAS_EXEC = 0x10,
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct service_t {
|
typedef struct service_t {
|
||||||
|
|
|
@ -81,6 +81,8 @@ static int svc_exec(void *user, char *arg, rdline_t *rd, int flags)
|
||||||
service_t *svc = user;
|
service_t *svc = user;
|
||||||
exec_t *e, *end;
|
exec_t *e, *end;
|
||||||
|
|
||||||
|
svc->flags |= SVC_FLAG_HAS_EXEC;
|
||||||
|
|
||||||
if (flags & RDSVC_NO_EXEC)
|
if (flags & RDSVC_NO_EXEC)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue