#****
proc spawnShell { node cmd } {
upvar 0 ::cf::[set ::curcfg]::eid eid
- global remote_exec exec_host gui_unix
+ global remote_exec exec_host gui_unix gui_freebsd gui_linux
set node_id $eid\.$node
if { $remote_exec } {
nexec vimageShellServer.sh $node_id 1234 $cmd &
- if { $gui_unix } {
- exec xterm -sb -rightbar \
- -T "IMUNES: [getNodeName $node] (console)" \
- -e "nc $exec_host 1234" &
- } else {
- exec cmd /c nc $exec_host 1234 &
- }
+ if { $gui_unix } {
+ exec xterm -sb -rightbar \
+ -T "IMUNES: [getNodeName $node] (console)" \
+ -e "nc $exec_host 1234" &
+ } else {
+ exec cmd /c nc $exec_host 1234 &
+ }
} else {
- nexec xterm -sb -rightbar \
- -T "IMUNES: [getNodeName $node] (console)" \
- -e "vimage $node_id $cmd" &
+ if { $gui_freebsd } {
+ set shellcommand "vimage $node_id $cmd"
+ } elseif { $gui_linux } {
+ if { $cmd == "/bin/sh" } {
+ set shellcommand "vzctl enter $node"
+ } else {
+ set shellcommand "vzctl exec $node $cmd"
+ }
+ }
+ nexec xterm -sb -rightbar \
+ -T "IMUNES: [getNodeName $node] (console)" \
+ -e "$shellcommand" &
}
}