GLOBUSRUN(1)
============
:doctype:      manpage
:man source:   Globus Toolkit
:man version:  6
:man manual:   Globus Toolkit Manual
:man software: Globus Toolkit

NAME
----
globusrun - Execute and manage jobs via GRAM

[[globusrun-SYNOPSIS]]
SYNOPSIS
--------
*globusrun* [-help | -usage | -version -versions ]

*globusrun* [-p | -parse] { -f 'FILENAME' | -file 'FILENAME' | 'RSL' }

*globusrun* [OPTIONS] {-r 'RESOURCE'| -resource 'RESOURCE'} { -a | -authenticate-only }

*globusrun* [OPTIONS] {-r 'RESOURCE'| -resource 'RESOURCE'} { -j | -jobmanager-version }

*globusrun* [OPTIONS] {-k | -kill } 'JOBID'

*globusrun* [OPTIONS] [ -full-proxy | -D ] { -y | -refresh-proxy } 'JOBID'

*globusrun* [OPTIONS] -status 'JOBID'

*globusrun* [OPTIONS] { -r 'RESOURCE' | -resource 'RESOURCE' } { -f 'FILENAME' | -file 'FILENAME' | 'RSL'} 

[[globusrun-DESCRIPTION]]
DESCRIPTION
-----------
The *globusrun* program for submits and manages jobs run on a local or remote
job host. The jobs are controlled by the *globus-job-manager*
program which interfaces with a local resource manager that schedules and 
executes the job.

The *globusrun* program can be run in a number of different modes chosen by
command-line options.

When '-help', '-usage', '-version', or '-versions' command-line options
are used, *globusrun* will print out diagnostic information and then exit.

When the '-p' or '-parse' command-line option
is present, *globusrun* will verify the syntax of the RSL specification and then
terminate. If the syntax is valid, *globusrun* will print out the string
`RSL Parsed Successfully...` and exit with a zero exit code;
otherwise, it will print an error message and terminate with a non-zero exit
code.

When the '-a' or '-authenticate-only' command-line option is present,
*globusrun* will verify that the service named
by 'RESOURCE' exists and the client's
credentials are granted permission to access that service. If authentication
is successful, *globusrun* will display the string
`GRAM Authentication test successful` and exit with a zero exit code; otherwise
it will print an explanation of the problem and will with a non-zero exit code.

When the '-j' or '-jobmanager-version' command-line option is present,
*globusrun* will attempt to determine the software
version that the service named by 'RESOURCE' is running. If successful, it will
display both the Toolkit version and the Job Manager package version and exit
with a zero exit code; otherwise, it will print an explanation of the problem
and exit with a non-zero exit code.

When the '-k' or '-kill' command-line option is present, *globusrun* will
attempt to terminate the job named by 'JOB_ID'. If
successful, *globusrun* will exit with zero; otherwise it will display an
explanation of the problem and exit with a non-zero exit code.

When the '-y' or '-refresh-proxy' command-line option is present, *globusrun*
will attempt to delegate a new X.509 proxy to the job manager which is managing
the job named by 'JOBID'. If successful, *globusrun* will
exit with zero; otherwise it will display an explanation of the problem and
exit with a non-zero exit code. This behavior can be modified by the 
'-full-proxy' or '-D' command-line options
to enable full proxy delegation. The default is limited proxy delegation.

When the '-status' command-line option is present, *globusrun* will
attempt to determine the current state of the job. If successful, the state
will be printed to standard output and *globusrun* will exit with a zero exit
code; otherwise, a description of the error will be displayed and it will exit
with a non-zero exit code.

Otherwise, *globusrun* will submit the job to a GRAM service. By default,
*globusrun* waits until the job has terminated or failed before exiting,
displaying information about job state changes and at exit time, the job exit
code if it is provided by the GRAM service.

The *globusrun* program can also function as a *GASS* file server to allow the
*globus-job-manager* program to stage files to and from the machine on which
*globusrun* is executed to the GRAM service node. This behavior is controlled
by the '-s', '-o', and '-w' command-line options.

Jobs submitted by *globusrun* can be monitored interactively or detached. To
have *globusrun* detach from the GRAM service after submitting the job, use the
'-b' or '-F' command-line options.

[[globusrun-OPTIONS]]
OPTIONS
-------
*-help*::
    Display a help message to standard error and exit.

*-usage*::
    Display a one-line usage summary to standard error and exit.

*-version*::
    Display the software version of *globusrun* to standard error and exit.

*-versions*::
    Display the software version of all modules used by *globusrun* (including
    DiRT information) to standard error and then exit.

*-p, -parse*::
    Do a parse check on the job specification and print diagnostics. If a parse
    error occurs, *globusrun* exits with a non-zero exit code.

*-f FILENAME, -file FILENAME*::
    Read job specification from the file named by 'FILENAME'

*-n, -no-interrupt*::
    Disable handling of the `SIGINT` signal, so that the interrupt character
    (typically Control-C causes *globusrun* to terminate without canceling the
    job.

*-r RESOURCE*::
    Submit the request to the resource specified by 'RESOURCE'. A resource may
    be specified in the following ways:
    - 'HOST'
    - 'HOST'`:`'PORT'
    - 'HOST'`:`'PORT'/'SERVICE'
    - 'HOST'`/`'SERVICE'
    - 'HOST'`:/`'SERVICE'
    - 'HOST'`::`'SUBJECT'
    - 'HOST'`:`'PORT'`:`'SUBJECT'
    - 'HOST'`/`'SERVICE'`:`'SUBJECT'
    - 'HOST'`:/`'SERVICE'`:`'SUBJECT'
    - 'HOST'`:`'PORT'`/`'SERVICE'`:`'SUBJECT'
If any of 'PORT', 'SERVICE', or 'SUBJECT' is omitted, the defaults of `2811`,
`jobmanager`, and `host@`'HOST' are used respectively.

*-j, -jobmanager-version*::
    Print the software version being run by the service running at
    'RESOURCE'.

*-k 'JOBID', -kill 'JOBID'*::
    Kill the job named by 'JOBID'.

*-D, -full-proxy*::
    Delegate a full impersonation proxy to the service.  By default, a limited
    proxy is delegated when needed.

*-y, -refresh-proxy*:
    Delegate a new proxy to the service processing JOBID.

*-status*::
    Display the current status of the job named by JOBID.

*-q, -quiet*::
    Do not display job state change or exit code information.

*-o, -output-enable*::
    Start a GASS server within the *globusrun* application that allows access
    to its standard output and standard error streams only. Also, augment the
    'RSL' with a definition of the `GLOBUSRUN_GASS_URL` RSL substitution and
    add `stdout` and `stderr` clauses which redirect the output and error
    streams of the job to the output and error streams of the interactive
    *globusrun* command. If this is specified, then *globusrun* acts as though
    the '-q' were also specified.

*-s, -server*::
    Start a GASS server within the *globusrun* application that allows access
    to its standard output and standard error streams for writing and any file
    local the the *globusrun* invocation for reading.  Also, augment the
    'RSL' with a definition of the `GLOBUSRUN_GASS_URL` RSL substitution and
    add `stdout` and `stderr` clauses which redirect the output and error
    streams of the job to the output and error streams of the interactive
    *globusrun* command. If this is specified, then *globusrun* acts as though
    the '-q' were also specified.

*-w, -write-allow*::
    Start a GASS server within the *globusrun* application that allows access
    to its standard output and standard error streams for writing and any file
    local the the *globusrun* invocation for reading or writing.  Also, augment
    the 'RSL' with a definition of the `GLOBUSRUN_GASS_URL` RSL
    substitution and add `stdout` and `stderr` clauses which redirect the
    output and error streams of the job to the output and error streams of the
    interactive *globusrun* command. If this is specified, then *globusrun*
    acts as though the '-q' were also specified.

*-b, -batch*::
    Terminate after submitting the job to the GRAM service.  The GASS-related
    options can be used to stage input files, but standard output, standard
    error, and file staging after the job completes will not be processed.
    The *globusrun* program will exit after the job hits any of the following
    states:
    - `PENDING`
    - `ACTIVE`
    - `FAILED`
    - `DONE`

*-F, -fast-batch*::
    Terminate after submitting the job to the GRAM service. The *globusrun*
    program will exit after it receives a reply from the service. The
    'JOBID' will be displayed to standard output before terminating so that the
    job can be checked with the '-status' command-line option or
    modified by the '-refresh-proxy' or '-kill' command-line options.

*-d, -dryrun*::
    Submit the job with the `dryrun` attribute set to true. When this is done,
    the job manager will prepare to start the job but start short of submitting
    it to the service. This can be used to detect problems with the 'RSL'.

[[globusrun-ENVIRONMENT]]
ENVIRONMENT
-----------
The following variables affect the execution of *globusrun*

*X509_USER_PROXY*::
    Path to proxy credential.

*X509_CERT_DIR*::
    Path to trusted certificate directory.

[[globusrun-BUGS]]
BUGS
----
The *globusrun* program assumes any failure to contact the job means the
job has terminated. In fact, this may be due to the
*globus-job-manager* program exiting after all jobs it is
managing have reached the `DONE` or `FAILED`
states. In order to reliably detect job termination, the
`two_phase` RSL attribute should be used.

[[globusrun-SEEALSO]]
SEE ALSO
--------
*globus-job-submit*(1), *globus-job-run*(1), *globus-job-clean*(1), *globus-job-get-output*(1), *globus-job-cancel*(1)

[[globusrun-AUTHOR]]
AUTHOR
------
Copyright (C) 1999-2014 University of Chicago
