Skip to content
earonesty edited this page May 15, 2011 · 5 revisions
Usage: grun <exec-options> command...
   or: grun -d [<local-daemon-options>]
   or: grun -q [<query-options>] <query-command>

Lightweight compute cluster engine, maybe it should be called "lce".

For more help, run grun -h, or grun -d -h or grun -q -h

Execution Options:
    -f|ile FILE     Read FILE for job options
    -t|race         Trace mode (verbose logging)

    -m|em INT       memory minimum in MB
    -c|pu CPUS      minimum number of cpus
    -n|ode N1,N2    specify certain nodes

    -noio               disable io-processing, but wait for completion
    -nowait             no io and don't wait, just start the command
    -e|rr FILE  write stderr directly to FILE, no spool
    -o|ut FILE  write stdout directly to FILE, no spool

If the command contains shell metacharacters, it's prefixed with "bash -c".

Common Options:
    -C FILE         (/etc/grun.conf) Config file location
    -t|race         Turn on debugging in the log file
    -v|ersion       Print version and exit
    -h|elp          Show this help page

Daemon Options:
    -n|ode          (local) One or more hosts
    -r|eload        Reload config
    -k|ill          Kill running server
    -R|ESTART       Kill and restart a running server

Without an option, -d just starts the daemon on the local machine.

Query Options:
    -a|ll           Query all nodes
    -n|odes         ($master) List of nodes to query

Query Commands:
    [-]status       List nodes (q)
    [-]jobs         List jobs (q)
    [-]history      List prior jobs (q)
    [-]conf         Dump config from memory (q,e)

Configuration File:

All config variables written as {value} are interpreted as perl code, and get evaluated at startup.

The "include" varialbe actually just includes the file specified, as if it were part of the original file.

All non-code configuration variables can include '$varname', which gets expanded to the value of another config var.
Be careful with match code.  It it's slow, it will kill the performance of your main node.

    You shouldn't need to change most of these.

Common variables:

    master          (localhost) Hostname[:port] of master node
    spool           (/var/spool/grun) Location for queue & io temp storage
    log_file        Location of the log
    services        Must be 'queue' and/or 'exec'
    port            Port to listen on
    trace           Turn tracing on for the whole server

Queue config vars:

    env             (PATH) List of environment varialbes to copy to the processes.  An asterisk (*) means 'ALL'
    expire_secs     (0) If set, jobs that aren't pinged in time get retried
    expire_action   (retry) Can be 'retry', 'fail'
    idle_load       (.3) If load is less than this amount, then considered idle
    io_keep         (3600) Time to keep unretrieved stdio files (0=forever)
    log_file        Where to send "xlog" output
    pid_file        (/var/run/grun.pid)
    ping_secs       (30) Nodes ping the master this often.
    ping_expire     (2*$ping_secs) Drop a node if it doesn't ping in time

Execution node config vars:

    match           Perl code that must eval to TRUE for a node match
    full_match      (1) If jobs queue is full, this is evaluated
    full_exec       If full match returns true, then this command is run
    wrap            Job command wrapper
Clone this wiki locally