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
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.
Ready to level-up your skills? Choose your own adventure.