Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
services:modules [2019/07/25 13:17]
giunta [Controlling Modules During Login]
services:modules [2019/07/25 14:34] (current)
giunta [Tips for graphical login]
Line 73: Line 73:
 This will search any help message or whatis description for the word(s) given on the command line. This will search any help message or whatis description for the word(s) given on the command line.
  
-Another way to search for modules is with the ''​module spider''​command. This command searches the entire list of possible modules. The difference between ''​module avail''​ and ''​module spider''​ is explained in the [[services:​modules#​module_hierarchy|Module Hierarchy]] and [[services:​modules#​searching_for_modules|Searching for Modules]] section.:+Another way to search for modules is with the ''​module spider''​command. This command searches the entire list of possible modules. The difference between ''​module avail''​ and ''​module spider''​ is explained in the [[services:​modules#​module_hierarchy|Module Hierarchy]] and [[services:​modules#​searching_for_modules|Searching for Modules]] section:
  
   $ module spider   $ module spider
Line 174: Line 174:
 ===== Controlling Modules During Login ===== ===== Controlling Modules During Login =====
  
-Normally when user logs in, there are a standard set of modules that are automatically loaded. Users can override and add to this standard set in two ways. The first is adding module commands to their personal startup files. The second way is through the ''​module save''​ command.+<note warning>​Automatically loaded modules may have negative effect on GNOME graphical login</​note>​
  
-To add module commands to users’ startup scripts ​requires a few steps. ​Bash users can put the module commands in their ''​~/​.bashrc''​ file. It is simplest ​to place the following in their ''​~/​.bashrc''​ file:+Users can automatically load a standard set of modules when log in, adding module commands to their //personal startup files//​. ​To add module commands to users’ startup scriptsBash users need to place the following in their ''​~/​.bashrc''​ file:
  
 <​code>​ <​code>​
Line 188: Line 188:
 By wrapping the module command in an //if// test, the module commands need only be read in once. Any sub-shell will inherit the ''​PATH''​ and other environment variables automatically. ​ By wrapping the module command in an //if// test, the module commands need only be read in once. Any sub-shell will inherit the ''​PATH''​ and other environment variables automatically. ​
  
-Csh users need only specify the module commands in their ''​~/​.cshrc''​ file:+Csh users need specify the module commands in their ''​~/​.cshrc''​ file:
  
 <​code>​ <​code>​
Line 197: Line 197:
 endif endif
 </​code>​ </​code>​
 +
 +If users have created at least a default collection (see [[services:​modules#​user_collections|User Collections]] for more details), they can replace all ''​module load ...''​ commands with a single ''​module restore''​. Bash users need to place the following in their ''​~/​.bashrc''​ file:
 +
 +<​code>​
 +if [ -z "​$BASHRC_READ"​ ]; then
 +   ​export BASHRC_READ=1
 +   ​module --initial_load --no_redirect restore
 +else
 +   ​module refresh
 +fi
 +</​code>​
 +
 +Csh users need specify the ''​module restore''​ command in their ''​~/​.cshrc''​ file:
 +
 +<​code>​
 +if ( ! $?​CSHRC_READ ) then
 +   ​setenv CSHRC_READ 1
 +  module --initial_load restore
 +else
 +  module refresh
 +endif
 +</​code>​
 +
 +==== Tips for graphical login ====
 +
 +When using automatically loaded modules, a possible solution to avoid problems on GNOME login could be testing ''​TERM''​ environment variable. In this way, only when users open a graphical terminal (e.g., GNOME Terminal), modules will be loaded. On SISSA linux workstations,​ //GNOME Terminal// sets it as ''​xterm-256color''​. Bash users may add a test on ''​TERM''​ variable in their ''​~/​.bashrc'':​
 +
 +<​code>​
 +if [ "​$TERM"​ == "​xterm-256color"​ -a -z "​$BASHRC_READ"​ ]; then
 +   ​export BASHRC_READ=1
 +   # Place any module commands here
 +   # module load git
 +fi
 +</​code>​
 +
 +Csh users need to add in their ''​~/​.cshrc''​ file:
 +
 +<​code>​
 +if ( "​$TERM"​ == "​xterm-256color"​ && ! $?​CSHRC_READ ) then
 +   ​setenv CSHRC_READ 1
 +   # Place any module command here
 +   # module load git
 +endif
 +</​code>​
 +
 ===== User Collections ===== ===== User Collections =====