bool ShellCommandService::executeService(TasCommandModel& model, TasResponse& response) { if(model.service() == serviceName() ){ TasCommand* command = getCommandParameters(model, "shellCommand"); if(command && !command->text().isEmpty()){ if (command->parameter("detached") == "true"){ detachedShellCommand(command->text(), response); } else if (command->parameter("threaded") == "true") { shellTask(command->text(), response); } else if (command->parameter("status") == "true") { TasCommand* command = getCommandParameters(model, "shellCommand"); if(command && !command->text().isEmpty()){ qint64 pid = command->text().toInt(); if (command->parameter("kill") == "true") { killTask(pid, response); } else { shellStatus(pid, response); } } } else{ shellCommand(command->text(), response); } } else{ response.setErrorMessage(NO_COMMAND_TO_EXECUTE); } return true; } else{ return false; } }
int P2_killTask(int argc, char* argv[]) // kill task { int taskId = INTEGER(argv[1]); // convert argument 1 if (taskId > 0) printf("\nKill Task %d", taskId); else printf("\nKill All Tasks"); // kill task if (killTask(taskId)) printf("\nkillTask Error!"); return 0; } // end P2_killTask
int defaultSigTermHandler(void) // task mySIGINT handler { killTask(curTask); return 1; }
void mySIGTERMHandler(void) { killTask(curTask); }
void defaultSigTermHandler(void) { printf("\nTerm Handler\n"); killTask(curTask); }
void defaultSigTermHandler(void) // task mySIGTERM handler { // printf("\ndefaultSigTermHandler"); killTask(curTask); return; }
void defaultSigTermHandler(void) // task handler { printf("\ndefaultSigTermHandler"); killTask(curTask); return; }