Added more logging when a monitor script cannot be executed.
This commit is contained in:
@ -97,6 +97,23 @@ EXTERNCMD* externcmd_allocate(char* argstr)
|
|||||||
free(cmd);
|
free(cmd);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
if(access(cmd->parameters[0],F_OK) != 0)
|
||||||
|
{
|
||||||
|
skygw_log_write(LE,
|
||||||
|
"Error: Cannot find file: %s",
|
||||||
|
cmd->parameters[0]);
|
||||||
|
externcmd_free(cmd);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(access(cmd->parameters[0],X_OK) != 0)
|
||||||
|
{
|
||||||
|
skygw_log_write(LE,
|
||||||
|
"Error: Cannot execute file: %s",
|
||||||
|
cmd->parameters[0]);
|
||||||
|
externcmd_free(cmd);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return cmd;
|
return cmd;
|
||||||
}
|
}
|
||||||
@ -138,7 +155,7 @@ int externcmd_execute(EXTERNCMD* cmd)
|
|||||||
{
|
{
|
||||||
/** Child process, execute command */
|
/** Child process, execute command */
|
||||||
execvp(cmd->parameters[0],cmd->parameters);
|
execvp(cmd->parameters[0],cmd->parameters);
|
||||||
exit(1);
|
_exit(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@ -156,7 +156,17 @@ startMonitor(void *arg,void* opt)
|
|||||||
{
|
{
|
||||||
if(handle->script)
|
if(handle->script)
|
||||||
free(handle->script);
|
free(handle->script);
|
||||||
handle->script = strdup(params->value);
|
if(access(params->value,X_OK) == 0)
|
||||||
|
{
|
||||||
|
handle->script = strdup(params->value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
skygw_log_write(LE,
|
||||||
|
"Error: The file cannot be executed: %s",
|
||||||
|
params->value);
|
||||||
|
handle->script = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(params->name,"events"))
|
else if(!strcmp(params->name,"events"))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -142,8 +142,17 @@ startMonitor(void *arg,void* opt)
|
|||||||
{
|
{
|
||||||
free(handle->script);
|
free(handle->script);
|
||||||
}
|
}
|
||||||
|
if(access(params->value,X_OK) == 0)
|
||||||
handle->script = strdup(params->value);
|
{
|
||||||
|
handle->script = strdup(params->value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
skygw_log_write(LE,
|
||||||
|
"Error: The file cannot be executed: %s",
|
||||||
|
params->value);
|
||||||
|
handle->script = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(params->name,"events"))
|
else if(!strcmp(params->name,"events"))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -303,7 +303,11 @@ void monitor_launch_script(MONITOR* mon,MONITOR_SERVERS* ptr, char* script)
|
|||||||
ptr->server->unique_name);
|
ptr->server->unique_name);
|
||||||
|
|
||||||
mon_append_node_names(mon->databases,argstr,PATH_MAX + MON_ARG_MAX + 1);
|
mon_append_node_names(mon->databases,argstr,PATH_MAX + MON_ARG_MAX + 1);
|
||||||
cmd = externcmd_allocate(argstr);
|
if((cmd = externcmd_allocate(argstr)) == NULL)
|
||||||
|
{
|
||||||
|
skygw_log_write(LE,"Failed to execute script: %s",script);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(externcmd_execute(cmd))
|
if(externcmd_execute(cmd))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -170,7 +170,17 @@ startMonitor(void *arg, void* opt)
|
|||||||
{
|
{
|
||||||
if(handle->script)
|
if(handle->script)
|
||||||
free(handle->script);
|
free(handle->script);
|
||||||
handle->script = strdup(params->value);
|
if(access(params->value,X_OK) == 0)
|
||||||
|
{
|
||||||
|
handle->script = strdup(params->value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
skygw_log_write(LE,
|
||||||
|
"Error: The file cannot be executed: %s",
|
||||||
|
params->value);
|
||||||
|
handle->script = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(params->name,"events"))
|
else if(!strcmp(params->name,"events"))
|
||||||
{
|
{
|
||||||
|
|||||||
@ -132,7 +132,17 @@ startMonitor(void *arg,void* opt)
|
|||||||
{
|
{
|
||||||
if(handle->script)
|
if(handle->script)
|
||||||
free(handle->script);
|
free(handle->script);
|
||||||
handle->script = strdup(params->value);
|
if(access(params->value,X_OK) == 0)
|
||||||
|
{
|
||||||
|
handle->script = strdup(params->value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
skygw_log_write(LE,
|
||||||
|
"Error: The file cannot be executed: %s",
|
||||||
|
params->value);
|
||||||
|
handle->script = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if(!strcmp(params->name,"events"))
|
else if(!strcmp(params->name,"events"))
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user