#!/bin/csh -f #+ #OSIRIS library of scripts # #NAME # osirisStopIdl -- Stop the OSIRIS IDL sessions # #SYNOPSIS # osirisStopIdl [-t #] [-m] etc... # #DESCRIPTION # Called via osirisStopGuis via "osiris stop idl" to kill IDL sessions # #OPTIONS # -t # # ID number to attach to all script generated errors, warnings, and # questions that are passed to the OGS. The ID number is separated # from the rest of the message with a ";". # # -m # simulate calls to RPC servers. during simulated calls, the # command is echoed (instead of being executed). # # others? # #EXAMPLES # osirisStopIdl # #ENVIRONMENT VARIABLES # list of environment variables used # #FILES # list of files used # #SERVERS & KEYWORDS # list of the servers and keywords used, for example: # # #SCRIPTS CALLED # list of the scripts called by this script, for example: # # help, syncheck # #EXIT STATUS # 0 - normal exit, no error # 1 - script aborted by an interrupt # 2 - syncheck error # 3 - error parsing command line input # other errors... # #SEE ALSO # ??? #- # # Modification History: # 20041124 - MB: Initial version created # 20100517 - jlyke: Broken out from osirisSetupNight # 20120202 - jlyke: Switched to svncserver1 # 20200603 - jlyke: Use ct to kill the IDL # #----------------------------------------------------------------------------- # Boiler plate for "-h" support for command autohelp. if ("$1" == "-h") then help $0 | more exit $status endif # Set up to trap interrupts (Ctrl-C, etc.) onintr abort # Set default variable values set cmdpre = "" set cmdsuf = "" set idnum = 0 # Check for flags set noglob while ($#argv != 0) ##echo "${0} ${mode}: Checking ${1}..." switch ($1) case -t: set CheckStatus = `syncheck -command $1 $2 -pattern int` if ("$CheckStatus" == "OK") then set idnum = $2 shift else echo "${0} ${mode}: Invalid script ID number specified <${2}> - using ${idnum}." endif unset Checkstatus breaksw case -m: set sim set cmdpre = "echo ${0}: sim:" set cmdsuf = "-m" breaksw default: echo "${0}: Invalid command line flag $1 specified." echo "${0}: Usage: $0 [-t #] [-m]" # set the error code for an error with command line input exit 3 breaksw endsw shift end unset noglob #----------------------------------------------------------------------------- # Define list of IDL set idl_list = (qlook2 osiris_idlstart osiris_drp_backbone idl) set kill_list = () foreach idl ($idl_list) # only kill this USER's software set kill_list = ($kill_list `ct | grep ^$USER | grep $idl | awk '{print $2}'`) end kill -9 $kill_list goto done abort: # Block of code to handle interrupts. exit 1 done: # is there anything that needs to go here? exit