Home › DevOps › AutoSys JIL File Explained — What JIL Is, Syntax, Examples and Common Mistakes
Beginner 3 min · November 06, 2026

AutoSys JIL File Explained — What JIL Is, Syntax, Examples and Common Mistakes

What is JIL in AutoSys? Job Information Language explained: what a JIL file is, insert_job/update_job/delete_job syntax, command, box and file watcher.

N
Naren Founder & Principal Engineer

20+ years shipping production infrastructure and CI/CD at scale. Written from production experience, not tutorials.

Follow
✓ Production
production tested
November 09, 2026
last updated
2,128
articles · all by Naren
Before you start⏱ 12 min
  • ✓Basic AutoSys concepts
 ● Production Incident 🔎 Debug Guide
⚡Quick Answer
  • JIL = Job Information Language: AutoSys job definitions as keyword: value lines.
  • Every definition starts with a subcommand: insert_job, update_job, delete_job, delete_box or override_job.
  • Common attributes: job_type, command, machine, owner, box_name, condition, date_conditions, days_of_week, start_times, std_out_file, std_err_file, alarm_if_fail.
  • Load a file with: jil < myjobs.jil
  • Export an existing job's JIL with: autorep -J jobname -q
✦ Definition~90s read
What is AutoSys JIL?

JIL (Job Information Language) is AutoSys's text language for defining jobs. A JIL file is a plain-text script of keyword: value lines (insert_job, command, machine, condition and so on) that the jil command loads into the AutoSys database.

★
A JIL file is a recipe card for a batch job: what to run, on which machine, as which user, when, and after what.
Plain-English First

A JIL file is a recipe card for a batch job: what to run, on which machine, as which user, when, and after what. You hand the card to AutoSys with the jil command, and it files the job in its database. Change the card and reload it to change the job.

Every AutoSys job, whether you create it in WCC or a script, ends up as JIL: Job Information Language. Knowing JIL lets you version-control job definitions, promote them between environments, and review changes before they hit production. This guide covers what a JIL file looks like, the subcommands and attributes you'll use daily, examples for command, box and file watcher jobs, how to load and export JIL, and the mistakes that cause most failed loads.

What a JIL File Looks Like

A JIL file is a list of job definitions. Each starts with a subcommand line, followed by that job's attributes, one keyword: value per line. Comments use / ... /.

daily_extract.jilTEXT
1
2
3
4
5
6
7
8
9
10
11
12
/* Daily extract: runs at 02:00 on weekdays */
insert_job: FIN_DAILY_EXTRACT
job_type: CMD
command: /apps/fin/bin/extract.sh
machine: finbatch01
owner: finbatch
date_conditions: 1
days_of_week: mo,tu,we,th,fr
start_times: "02:00"
std_out_file: /apps/fin/logs/extract.out
std_err_file: /apps/fin/logs/extract.err
alarm_if_fail: 1
Mental Model
Recipe card
Subcommand says what to do with the card (insert, update, delete); attributes are the recipe.
🎯 Key Takeaway
One subcommand line, then keyword: value attributes.

The Subcommands

  • insert_job: create a new job (with job_type).
  • update_job: change attributes of an existing job; only the attributes you list change.
  • delete_job: remove a job. delete_box removes a box and the jobs inside it.
  • override_job: change attributes for the next run only, then revert automatically. Useful for one-off changes.

Job types are CMD (command), BOX (container for other jobs) and FW (file watcher); older versions also accept c, b and f.

changes.jilTEXT
1
2
3
4
5
6
7
8
9
10
/* Change only the start time */
update_job: FIN_DAILY_EXTRACT
start_times: "03:00"

/* One-off: run a different script on the next run only */
override_job: FIN_DAILY_EXTRACT
command: /apps/fin/bin/extract.sh --full

/* Remove a job */
delete_job: FIN_OLD_REPORT
💡update_job is partial
You don't repeat the whole definition. Anything you don't mention keeps its current value.
🎯 Key Takeaway
insert, update, delete, delete_box and override cover every change.

Box and File Watcher Examples

A box groups jobs and gives them shared timing; jobs join it with box_name. Conditions create dependencies between jobs. A file watcher waits for a file to arrive and settle.

box_and_fw.jilTEXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
insert_job: FIN_NIGHTLY_BOX
job_type: BOX
date_conditions: 1
days_of_week: all
start_times: "01:00"

insert_job: FIN_WAIT_FEED
job_type: FW
box_name: FIN_NIGHTLY_BOX
machine: finbatch01
owner: finbatch
watch_file: /data/in/feed_*.csv
watch_interval: 60

insert_job: FIN_LOAD_FEED
job_type: CMD
box_name: FIN_NIGHTLY_BOX
command: /apps/fin/bin/load_feed.sh
machine: finbatch01
owner: finbatch
condition: s(FIN_WAIT_FEED)
🔥s(), f(), d()
success(JOB), failure(JOB) and done(JOB) can be shortened to s(), f() and d() in conditions.
🎯 Key Takeaway
box_name puts jobs in a box; condition chains them.

Load and Export JIL

Load a file by redirecting it into the jil command on a machine with the AutoSys client and environment set. To see what's actually defined, autorep -q prints a job's current definition as JIL, which is the best way to back up a job before changing it.

load_export.shBASH
1
2
3
4
5
6
7
8
# Load (insert/update/delete) everything in the file
jil < daily_extract.jil

# Back up the current definition first
autorep -J FIN_DAILY_EXTRACT -q > FIN_DAILY_EXTRACT.backup.jil

# Export a whole box and its jobs
autorep -J FIN_NIGHTLY_BOX -q > fin_nightly_box.jil
💡Version-control your JIL
Keep JIL files in Git, review changes as diffs, and load them from a pipeline. Then autorep -q output can be compared with the repo to catch drift.
🎯 Key Takeaway
jil < file to load; autorep -J job -q to export.

Common JIL Mistakes

  1. Attributes before the subcommand: every attribute must follow an insert_job or update_job line.
  2. Misspelled keywords or attributes that don't apply to the job_type (for example watch_file on a CMD job).
  3. start_times or days_of_week without date_conditions: 1, so the job never schedules itself.
  4. Unquoted values with special characters: quote start_times values like "02:00, 14:00".
  5. Conditions on jobs that don't exist yet: load the upstream job first.
  6. Mutually exclusive attributes, such as notification_template with notification_msg (Broadcom error CAUAJM_E_18965).
  7. Environment-specific machine or owner values copied between test and production.
⚠ A successful load isn't a correct job
JIL validates syntax and references, not intent. Review autorep -q output after every change.
🎯 Key Takeaway
Most JIL failures are ordering, typos, missing date_conditions or wrong-environment values.
● Production incidentPOST-MORTEMseverity: high

The Promotion Script That Moved the Wrong Machine

Symptom
A production job completed SUCCESS but its output never appeared: it had run on the test machine.
Assumption
The team assumed the JIL file was environment-neutral because it loaded without errors.
Root cause
The machine: attribute still named the test agent, which was also defined in production for monitoring. JIL accepted it because the machine existed.
Fix
Split environment-specific values (machine, owner, paths) into per-environment variables substituted at deploy time, and added a review step that diffs autorep -q output before and after each load.
Key lesson
  • JIL that loads isn't necessarily correct JIL.
  • Keep environment-specific attributes out of shared definitions.
  • Diff autorep -q output before and after every change.
Production debug guideWhen jil rejects a file, or accepts the wrong thing4 entries
Symptom · 01
jil reports an error on a line
→
Fix
Check the keyword spelling and that the attribute belongs to that job_type; attributes must follow an insert_job/update_job line.
Symptom · 02
Mutually exclusive keyword error (e.g. CAUAJM_E_18965)
→
Fix
Two attributes can't coexist (Broadcom documents notification_template vs notification_msg); remove one in the update.
Symptom · 03
Job loads but never starts
→
Fix
Check date_conditions is 1 when using start_times/days_of_week, and that the condition's jobs exist and have run.
Symptom · 04
Unsure what's actually defined
→
Fix
Run autorep -J jobname -q to print the job's current JIL and compare with your file.
⚙ Quick Reference
4 commands from this guide
FileCommand / CodePurpose
daily_extract.jil/* Daily extract: runs at 02:00 on weekdays */What a JIL File Looks Like
changes.jil/* Change only the start time */The Subcommands
box_and_fw.jilinsert_job: FIN_NIGHTLY_BOXBox and File Watcher Examples
load_export.shjil < daily_extract.jilLoad and Export JIL

Key takeaways

1
JIL is AutoSys's job definition language
subcommand, then keyword: value lines.
2
insert_job, update_job, delete_job, delete_box and override_job cover all changes.
3
Load with jil < file; export with autorep -J job -q.
4
Most errors are ordering, typos, missing date_conditions or wrong-environment values.
5
Keep JIL in version control and diff before and after loads.

Common mistakes to avoid

3 patterns
×

Forgetting date_conditions: 1

Symptom
Job has start_times but never runs on its own.
Fix
Set date_conditions: 1 for any job (or box) that should schedule itself.
×

Re-inserting a job to change it

Symptom
Error that the job already exists.
Fix
Use update_job with only the attributes that change.
×

Editing jobs only in WCC with no JIL record

Symptom
No history of who changed what, and environments drift apart.
Fix
Treat JIL in version control as the source of truth.
INTERVIEW PREP · PRACTICE MODE

Interview Questions on This Topic

Q01JUNIOR
What is JIL in AutoSys?
Q02SENIOR
What's the difference between update_job and override_job?
Q03JUNIOR
How do you back up a job definition before changing it?
Q01 of 03JUNIOR

What is JIL in AutoSys?

ANSWER
Job Information Language: the text language AutoSys uses to define jobs, with subcommands like insert_job and update_job followed by keyword: value attributes. Files are loaded with the jil command.
FAQ · 3 QUESTIONS

Frequently Asked Questions

01
What is a JIL file in AutoSys?
02
How do I run a JIL file?
03
How do I get the JIL of an existing job?
COMPLETE GUIDE
The Complete AutoSys Workload Automation Guide for Engineers →

JIL syntax, sendevent, autorep, box jobs, file watchers, scheduling, HA, security, cloud workload automation, and 22 interview questions — the definitive AutoSys reference for production engineers.

N
Naren Founder & Principal Engineer

20+ years shipping production infrastructure and CI/CD at scale. Written from production experience, not tutorials.

Follow
✓ Verified
production tested
November 09, 2026
last updated
2,128
articles · all by Naren
🔥

That's AutoSys. Mark it forged?

3 min read · try the examples if you haven't

←
Previous
AutoSys Interview Questions and Answers
31 / 49 · AutoSys
Next
AutoSys: Pass a Dynamic Parameter to a Job
→