chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
service: show service type when dumping state
[elogind.git]
/
service.c
diff --git
a/service.c
b/service.c
index 28416894676591c940b2475ec862db211068380d..be23b57c4979556f8bc0615bc0a12696ad0c335f 100644
(file)
--- a/
service.c
+++ b/
service.c
@@
-370,7
+370,13
@@
static int service_load_sysv_path(Service *s, const char *path) {
if (r == 0)
continue;
if (r == 0)
continue;
- r = unit_add_name(u, m);
+ if (unit_name_to_type(m) == UNIT_SERVICE)
+ r = unit_add_name(u, m);
+ else {
+ if ((r = unit_add_dependency_by_name_inverse(u, UNIT_REQUIRES, m)) >= 0)
+ r = unit_add_dependency_by_name(u, UNIT_BEFORE, m);
+ }
+
free(m);
if (r < 0)
free(m);
if (r < 0)
@@
-504,7
+510,7
@@
static int service_load_sysv_name(Service *s, const char *name) {
r = service_load_sysv_path(s, path);
free(path);
r = service_load_sysv_path(s, path);
free(path);
- if (r
>
= 0)
+ if (r
!
= 0)
return r;
}
return r;
}
@@
-568,7
+574,7
@@
static int service_init(Unit *u) {
return r;
}
return r;
}
- /* Load a classic init script as a fallback, if we couldn
*
t find anything */
+ /* Load a classic init script as a fallback, if we couldn
'
t find anything */
if (r == 0)
if ((r = service_load_sysv(s)) <= 0) {
service_done(u);
if (r == 0)
if ((r = service_load_sysv(s)) <= 0) {
service_done(u);
@@
-606,11
+612,13
@@
static void service_dump(Unit *u, FILE *f, const char *prefix) {
"%sService State: %s\n"
"%sPermissionsStartOnly: %s\n"
"%sRootDirectoryStartOnly: %s\n"
"%sService State: %s\n"
"%sPermissionsStartOnly: %s\n"
"%sRootDirectoryStartOnly: %s\n"
- "%sValidNoProcess: %s\n",
+ "%sValidNoProcess: %s\n"
+ "%sType: %s\n",
prefix, service_state_to_string(s->state),
prefix, yes_no(s->permissions_start_only),
prefix, yes_no(s->root_directory_start_only),
prefix, service_state_to_string(s->state),
prefix, yes_no(s->permissions_start_only),
prefix, yes_no(s->root_directory_start_only),
- prefix, yes_no(s->valid_no_process));
+ prefix, yes_no(s->valid_no_process),
+ prefix, service_type_to_string(s->type));
if (s->pid_file)
fprintf(f,
if (s->pid_file)
fprintf(f,
@@
-1436,7
+1444,7
@@
static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) {
* don't care about failing commands. */
if (s->control_command->command_next &&
* don't care about failing commands. */
if (s->control_command->command_next &&
- (success || (s->state == SERVICE_
EXEC_STOP || s->state == SERVICE_EXEC
_STOP_POST)))
+ (success || (s->state == SERVICE_
STOP || s->state == SERVICE
_STOP_POST)))
/* There is another command to *
* execute, so let's do that. */
/* There is another command to *
* execute, so let's do that. */