Added application name in process title.
This commit is contained in:
@@ -46,6 +46,7 @@ typedef struct {
|
|||||||
|
|
||||||
|
|
||||||
struct nxt_common_app_conf_s {
|
struct nxt_common_app_conf_s {
|
||||||
|
nxt_str_t name;
|
||||||
nxt_str_t type;
|
nxt_str_t type;
|
||||||
nxt_app_type_t type_id;
|
nxt_app_type_t type_id;
|
||||||
nxt_str_t user;
|
nxt_str_t user;
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ static nxt_conf_map_t nxt_common_app_conf[] = {
|
|||||||
static void
|
static void
|
||||||
nxt_port_master_data_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg)
|
nxt_port_master_data_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg)
|
||||||
{
|
{
|
||||||
|
u_char *start;
|
||||||
size_t dump_size;
|
size_t dump_size;
|
||||||
nxt_mp_t *mp;
|
nxt_mp_t *mp;
|
||||||
nxt_int_t ret;
|
nxt_int_t ret;
|
||||||
@@ -156,7 +157,16 @@ nxt_port_master_data_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg)
|
|||||||
|
|
||||||
mp = nxt_mp_create(1024, 128, 256, 32);
|
mp = nxt_mp_create(1024, 128, 256, 32);
|
||||||
|
|
||||||
conf = nxt_conf_json_parse(mp, b->mem.pos, b->mem.free);
|
nxt_memzero(&app_conf, sizeof(nxt_common_app_conf_t));
|
||||||
|
|
||||||
|
start = b->mem.pos;
|
||||||
|
|
||||||
|
app_conf.name.start = start;
|
||||||
|
app_conf.name.length = nxt_strlen(start);
|
||||||
|
|
||||||
|
start += app_conf.name.length + 1;
|
||||||
|
|
||||||
|
conf = nxt_conf_json_parse(mp, start, b->mem.free);
|
||||||
b->mem.pos = b->mem.free;
|
b->mem.pos = b->mem.free;
|
||||||
|
|
||||||
if (conf == NULL) {
|
if (conf == NULL) {
|
||||||
@@ -164,8 +174,6 @@ nxt_port_master_data_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
nxt_memzero(&app_conf, sizeof(nxt_common_app_conf_t));
|
|
||||||
|
|
||||||
app_conf.user = nobody;
|
app_conf.user = nobody;
|
||||||
|
|
||||||
ret = nxt_conf_map_object(conf, nxt_common_app_conf,
|
ret = nxt_conf_map_object(conf, nxt_common_app_conf,
|
||||||
@@ -308,30 +316,36 @@ nxt_master_start_worker_process(nxt_task_t *task, nxt_runtime_t *rt,
|
|||||||
nxt_common_app_conf_t *app_conf, uint32_t stream)
|
nxt_common_app_conf_t *app_conf, uint32_t stream)
|
||||||
{
|
{
|
||||||
char *user, *group;
|
char *user, *group;
|
||||||
|
u_char *title, *last, *end;
|
||||||
|
size_t size;
|
||||||
nxt_process_init_t *init;
|
nxt_process_init_t *init;
|
||||||
|
|
||||||
init = nxt_malloc(sizeof(nxt_process_init_t)
|
size = sizeof(nxt_process_init_t)
|
||||||
+ sizeof(nxt_user_cred_t)
|
+ sizeof(nxt_user_cred_t)
|
||||||
+ app_conf->user.length + 1
|
+ app_conf->user.length + 1
|
||||||
+ app_conf->group.length + 1);
|
+ app_conf->group.length + 1
|
||||||
|
+ app_conf->name.length + sizeof("\"\" application");
|
||||||
|
|
||||||
|
init = nxt_malloc(size);
|
||||||
if (nxt_slow_path(init == NULL)) {
|
if (nxt_slow_path(init == NULL)) {
|
||||||
return NXT_ERROR;
|
return NXT_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
init->user_cred = (nxt_user_cred_t *) (init + 1);
|
init->user_cred = nxt_pointer_to(init, sizeof(nxt_process_init_t));
|
||||||
|
|
||||||
user = nxt_pointer_to(init->user_cred, sizeof(nxt_user_cred_t));
|
user = nxt_pointer_to(init->user_cred, sizeof(nxt_user_cred_t));
|
||||||
|
|
||||||
nxt_memcpy(user, app_conf->user.start, app_conf->user.length);
|
nxt_memcpy(user, app_conf->user.start, app_conf->user.length);
|
||||||
user[app_conf->user.length] = '\0';
|
last = nxt_pointer_to(user, app_conf->user.length);
|
||||||
|
*last++ = '\0';
|
||||||
|
|
||||||
init->user_cred->user = user;
|
init->user_cred->user = user;
|
||||||
|
|
||||||
if (app_conf->group.start != NULL) {
|
if (app_conf->group.start != NULL) {
|
||||||
group = nxt_pointer_to(user, app_conf->user.length + 1);
|
group = (char *) last;
|
||||||
|
|
||||||
nxt_memcpy(group, app_conf->group.start, app_conf->group.length);
|
nxt_memcpy(group, app_conf->group.start, app_conf->group.length);
|
||||||
group[app_conf->group.length] = '\0';
|
end = nxt_pointer_to(group, app_conf->group.length);
|
||||||
|
*last++ = '\0';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
group = NULL;
|
group = NULL;
|
||||||
@@ -341,8 +355,13 @@ nxt_master_start_worker_process(nxt_task_t *task, nxt_runtime_t *rt,
|
|||||||
return NXT_ERROR;
|
return NXT_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
title = last;
|
||||||
|
end = title + app_conf->name.length + sizeof("\"\" application");
|
||||||
|
|
||||||
|
nxt_sprintf(title, end, "\"%V\" application%Z", &app_conf->name);
|
||||||
|
|
||||||
init->start = nxt_app_start;
|
init->start = nxt_app_start;
|
||||||
init->name = "worker process";
|
init->name = (char *) title;
|
||||||
init->port_handlers = nxt_app_process_port_handlers;
|
init->port_handlers = nxt_app_process_port_handlers;
|
||||||
init->signals = nxt_worker_process_signals;
|
init->signals = nxt_worker_process_signals;
|
||||||
init->type = NXT_PROCESS_WORKER;
|
init->type = NXT_PROCESS_WORKER;
|
||||||
|
|||||||
@@ -1930,6 +1930,7 @@ nxt_router_gen_error(nxt_task_t *task, nxt_conn_t *c, int code,
|
|||||||
static void
|
static void
|
||||||
nxt_router_send_sw_request(nxt_task_t *task, void *obj, void *data)
|
nxt_router_send_sw_request(nxt_task_t *task, void *obj, void *data)
|
||||||
{
|
{
|
||||||
|
size_t size;
|
||||||
nxt_buf_t *b;
|
nxt_buf_t *b;
|
||||||
nxt_app_t *app;
|
nxt_app_t *app;
|
||||||
nxt_port_t *port;
|
nxt_port_t *port;
|
||||||
@@ -1961,8 +1962,12 @@ nxt_router_send_sw_request(nxt_task_t *task, void *obj, void *data)
|
|||||||
rt = task->thread->runtime;
|
rt = task->thread->runtime;
|
||||||
port = rt->port_by_type[NXT_PROCESS_MASTER];
|
port = rt->port_by_type[NXT_PROCESS_MASTER];
|
||||||
|
|
||||||
b = nxt_buf_mem_alloc(port->mem_pool, app->conf.length, 0);
|
size = app->name.length + 1 + app->conf.length;
|
||||||
|
|
||||||
|
b = nxt_buf_mem_alloc(port->mem_pool, size, 0);
|
||||||
|
|
||||||
|
nxt_buf_cpystr(b, &app->name);
|
||||||
|
*b->mem.free++ = '\0';
|
||||||
nxt_buf_cpystr(b, &app->conf);
|
nxt_buf_cpystr(b, &app->conf);
|
||||||
|
|
||||||
nxt_port_socket_write(task, port, NXT_PORT_MSG_DATA, -1, sw->stream, 0, b);
|
nxt_port_socket_write(task, port, NXT_PORT_MSG_DATA, -1, sw->stream, 0, b);
|
||||||
|
|||||||
Reference in New Issue
Block a user