mirror of
https://github.com/troglobit/finit.git
synced 2026-10-23 11:44:37 +00:00
Add service/task name config option
Allows the service/task name derived from the binary to be
overridden with a custom name.
Example:
service name:dhcpd [2] /usr/sbin/udhcpd -f -- DHCP Server
Signed-off-by: Robert Andersson <robert.m.andersson@se.atlascopco.com>
This commit is contained in:
1 parent
33fd6f0049
commit
f2cab53e55
6 files changed
+34
-24
No files matched your search
@@ -569,6 +569,23 @@ static void parse_log(svc_t *svc, char *arg)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* name:<name>
|
||||
*/
|
||||
static void parse_name(svc_t *svc, char *arg)
|
||||
{
|
||||
char *name = NULL;
|
||||
|
||||
if (arg && !strncasecmp(arg, "name:", 5)) {
|
||||
name = arg + 5;
|
||||
} else {
|
||||
name = strrchr(svc->cmd, '/');
|
||||
name = name ? name + 1 : svc->cmd;
|
||||
}
|
||||
|
||||
strlcpy(svc->name, name, sizeof(svc->name));
|
||||
}
|
||||
|
||||
/**
|
||||
* parse_cmdline_args - Update the command line args in the svc struct
|
||||
*
|
||||
@@ -659,6 +676,7 @@ int service_register(int type, char *cfg, struct rlimit rlimit[], char *file)
|
||||
char *username = NULL, *log = NULL, *pid = NULL;
|
||||
char *service = NULL, *proto = NULL, *ifaces = NULL;
|
||||
char *cmd, *desc, *runlevels = NULL, *cond = NULL;
|
||||
char *name = NULL;
|
||||
svc_t *svc;
|
||||
plugin_t *plugin = NULL;
|
||||
|
||||
@@ -716,6 +734,8 @@ int service_register(int type, char *cfg, struct rlimit rlimit[], char *file)
|
||||
log = cmd;
|
||||
else if (!strncasecmp(cmd, "pid", 3))
|
||||
pid = cmd;
|
||||
else if (!strncasecmp(cmd, "name:", 5))
|
||||
name = cmd;
|
||||
else if (cmd[0] != '/' && strchr(cmd, '/'))
|
||||
service = cmd; /* inetd service/proto */
|
||||
else
|
||||
@@ -831,6 +851,8 @@ recreate:
|
||||
|
||||
conf_parse_cond(svc, cond);
|
||||
|
||||
parse_name(svc, name);
|
||||
|
||||
if (log)
|
||||
parse_log(svc, log);
|
||||
if (desc)
|
||||
|
||||
Reference in new issue
Block a user