Hi all,
I have this code that it create more parallel processes:
%do i_quest=1 %to 20; |
signon mcq&i_quest. sascmd="!sascmd"; | |
%syslput serverwork=%sysfunc(pathname(work)) /remote=mcq&i_quest.; | |
%syslput servertemp=%sysfunc(pathname(temp)) /remote=mcq&i_quest.; | |
%syslput serverout=%sysfunc(pathname(output)) /remote=mcq&i_quest.; | |
%syslput serverlk=%sysfunc(pathname(lookup)) /remote=mcq&i_quest.; | |
%syslput i_quest=&i_quest. /remote=mcq&i_quest.; | |
%syslput main_dir_macro=&main_dir_macro. /remote=mcq&i_quest.; |
rsubmit mcq&i_quest. wait=no sysrputsync=yes; | |
OPTIONS SYMBOLGEN SOURCE SOURCE2 MPRINT; | |
OPTIONS FULLSTIMER; | |
OPTIONS MPRINT; | |
OPTIONS MAUTOSOURCE SASAUTOS="&main_dir_macro."; | |
%test; |
endrsubmit; |
%end; |
%do i_quest=1 %to 20;
waitfor _all_ mcq&i_quest.; | ||
signoff mcq&i_quest.; |
%end;
I need to kill all processes while they still running.
I have found this code:
data _null_;
cmd = "'taskkill /fi " ||'"' || "PID EQ &PID" || '"' || "'";
call symput('taskcmd',trim(left(cmd)));
run;
filename TaskKill pipe &taskcmd;
data _null_;
infile TaskKill lrecl=229 pad;
input @1 CommandResponse $char229.;
put CommandResponse;
run;
This code kills the process with PID (Process ID= macro variable &sysjobid) but if I run this code, it kills only the parent process while the child processes continue running.
Is there anyone who can help me?
Thank you!
Trevi
I found the solution. best regards
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.