I am running R on EC2 spot instances and I need R to terminate the instance and cancel the spot request once the script has run.
For that I have set the "Request ID" into an environmental variable in /.bashrc and my plan was to simply call the following code into R once the script is ready
system("ec2-cancel-spot-instance-requests $SIR") The issue I am having is that R is not "seeing" the same environmental variables I seen when I type env from outside R thus the command is not working.
I have checked and if I set my environmental variables at /etc/environment R is able to see those variables, but here is the other problem. As those variables are dynamic (the instance ID and the request ID is different each time a spot instance is created), I am running a script to create them in the form of:
export SIR=`cat /etc/ec2_instance_spot_id.txt` Where that file contains the dynamic ID
So, how can I insert "dynamic" environmental variables into /etc/environment ? Or, how can I make R read the environmental variables at /.bashrc?
Any tip in the right direction will be much appreciated!
RStudio by default displays four panes: Console, Source Code, Environment/History, and Files. You can rearrange them by going to View -> Panes -> Pane Layout. You can add and remove tabs from panes by going to View and selecting/deselecting tab options listed at the bottom.
To list all the environment variables, use the command " env " (or " printenv "). You could also use " set " to list all the variables, including all local variables.
The command env displays all environment variables and their values.
You want Sys.getenv() as in Sys.getenv("PATH"), say.
Or for your example, try
SIR <- Sys.getenv("SIR") system(paste("ec2-cancel-spot-instance-requests", SIR)) As for setting variables at startup, see help(Startup) to learn about ~/.Renvironment etc
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With