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?
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
) > logfileThe deck file now forms a fully functional batch file to do the specified computation.
-
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.
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?
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.