GLOBUS-FORK-STARTE(8)

πŸ’… GLOBUS-FORK-STARTE(8) β€” the girlies' guide

ok so bestie, welcome to globus-fork-starter from the Grid Community Toolkit Manual πŸ¦‹ this is the page for the little program that starts fork jobs and then just… watches them like a hawk. main character energy fr.


✨ NAME ✨

globus-fork-starter β€” start and monitor a fork job πŸŽ€


🌸 SYNOPSIS 🌸

globus-fork-starter

πŸ’– DESCRIPTION πŸ’–

okay so globus-fork-starter executes jobs that get handed to it on its standard input stream, and it records all the job state changes into a file defined in the /etc/globus-fork.conf configuration file. it keeps running until its standard input stream is closed and all the jobs it's managing have terminated. no early exit, she stays till the end 🫢

the log this program generates can be used by the SEG to provide job state changes and exit codes to the GRAM service. and the way it usually gets started? the fork GRAM module spawns it. periodt.

so globus-fork-starter expects its input to be a series of task definitions, separated by the newline character, and each one represents a separate job. each task definition contains a bunch of fields, separated by the colon character. here's the breakdown:

  • the first field is always the literal string 100 β€” that's the message format, don't ask, it just is πŸ’€
  • the second field is a unique job tag that will distinguish the reply from this program when multiple jobs are submitted
  • the rest of the fields contain attribute bindings

and the supported attributes are, bestie, literally these:

  • directory β€” working directory of the job
  • environment β€” comma-separated list of strings defining environment variables. the form of these strings is var=value
  • count β€” number of processes to start
  • executable β€” full path to the executable to run
  • arguments β€” comma-separated list of command-line arguments for the job
  • stdin β€” full path to a file containing the input of the job
  • stdout β€” full path to a file to write the output of the job to
  • stderr β€” full path to a file to write the error stream of the job

within each field, you can escape these characters by putting a backslash in front of them:

  • backslash (\)
  • semicolor (;)
  • comma (,)
  • equal (=)
also, a newline can be represented inside a field by using the escape sequence \n. iconic.

for each job that globus-fork-starter processes, it replies by writing a single line to standard output. these replies are also a bunch of fields, but separated by the semicolon character this time. plot twist ✨

when the job start is a slay (success): the first field of the reply is the literal 101, the second field is the tag from the input, and the third field is a comma-separated list of SEG job identifiers which consist of the concatenation of a UUID and a process id. globus-fork-starter will write state changes to the SEG log using these job identifiers. so organized πŸ’…

when it's a fail: the first field of the reply is the literal 102, the second field is the tag from the input, the third field is the integer representation of a GRAM error code, and the fourth field is an string explaining the error. sad girl hours 😭


🌈 ENVIRONMENT 🌈

these variables affect the execution of globus-fork-starter:

  • GLOBUS_LOCATION β€” path to the Grid Community Toolkit installation. this is used to locate the globus-fork.conf configuration file.

πŸŽ€ FILES πŸŽ€

these files affect the execution of globus-fork-starter:

  • /etc/globus-fork.conf β€” path to fork SEG configuration file.

πŸ‘‘ AUTHOR πŸ‘‘

Copyright Β© 1999-2016 University of Chicago


and that's the whole vibe check bestie πŸ’œ this was Grid Community Toolkit 6, dated 03/31/2018 β€” go forth and fork, you absolute icon πŸ§šβœ¨πŸ“