Any interest in this:

LJL is a job creation language that takes a job file, gathers items mentioned in its various lines and here-documents, and generates a runnable .deck file (short for “deck of cards”).

The .deck file is a complex Bash script that creates a log spool and several temporary files in /tmp/<jobname>. It automatically cleans up scratchable files after the run. The log file contains the output of each step, including any program results.

Any questions about it? Any suggestions?

  • WasPentaliveOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    21 hours ago

    More Detail::: What SUBMIT Does with Each LJL Statement:

    For every statement, SUBMIT generates corresponding commands in the .deck file. Below is a step-by-step breakdown:

    One //jo line, as many /dd lines as are required, and as many //ex as are required

    //jo sumjob owner=me@mail.com log=print class=a

    • Generates a deck command to invoke ifclass a, which checks if the job’s class allows execution at run time.

    • Generates a deck command to Log “sumjob is starting” to /var/log/JCL/ with a timestamp.

    • Generates a deck command to create /tmp/sumjob

    • Generates a deck command to initializes /tmp/sumjob/jobname.log with a formatted header (e.g., via figlet sumjob).

    Job Classes: A = Runs as soon as submitted B = Runs only if load is low enough C = Runs in Off-Hours

    //dd alias source(here|file=pathandfilename|new) disp(keep|scratch)

    • Note the disp (disposition) if keep the put the file in /home/user/.lcl/jobname as whatever the alias is if the disp(scratch) then the file will go into the /tmp/jobname directory as named by the alias.

    • Generate deck commands to

    – if source is here: copy lines from lcl up to ‘/*’ to the deck file as a here document if source is a file: add commands to copy the file into a working directory either in user’s home or in the tmp directory under the alias. //dd users source(file=/etc/passwd) disp(keep) ==> copy /etc/passwd to /home/user/.ljl/users

    //ex somecommand --options < alias

    -Generate doc commands to execute the program as specified and save the output to the logfile In this case echo (somecommand --options < aliasproperlyexpanded ) > logfile

    The deck file now forms a fully functional batch file to do the specified computation.

  • nanook@friendica.eskimo.com
    link
    fedilink
    arrow-up
    1
    ·
    18 hours ago

    Between bash (and the 40 or so other shells available under Linux), python, perl, and the several hundred other scripting languages already available, is a dedicated job control language really needed? I think unnecessary fluff.

    • WasPentaliveOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 hours ago

      It is not mandatory that you install it - Yes, there are other choices already. But in the beginning, Unix only had C and Assembly why didn’t we just stick with those?

  • WasPentaliveOP
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 day ago

    I manually created a .deck file to compile and run a Fortran program with specific data and to create a .log file of all the output, the Fortran program, and the data. I found it to be picky and somewhat hard. So I thought to myself: With something like JCL, one could take simple JCL-like statements, here documents for the source and data files, and programmatically combine them to make a script like the one I created manually.