The version date of this specification is 2024/07/02.

The Rule files follow the FSS-000D (Basic Rule) format with IKI-0000 (Unrestricted).

A Rule file name is expected to have the file extension .rule.

For each Rule file:

  • The outer most part is a FSS-0002 (Basic List).
  • The outer most part is a FSS-0002 (Basic List).
  • The Basic List Object is considered the Rule Type.
  • The Basic List Content is determined by the specific Rule Type.
  • The Content for each Rule Type is called the Item.
  • Each Item Object is the Item Name.
  • Each Item Content is either the Action or the Setting.
  • Each Action Object is the Action Name.
  • Each Action Content are the Action Parameters.
  • Each Setting Object is the Setting Name.
  • Each Setting Content are the Setting Values.

The Rule Types:

  • command: Follows either FSS-0003 (Extended List) or FSS-0001 (Extended).
  • script: Follows either FSS-0003 (Extended List) or FSS-0001 (Extended).
  • service: Follows either FSS-0003 (Extended List) or FSS-0001 (Extended).
  • settings: Is required and follows either FSS-0001 (Extended).
  • utility: Follows either FSS-0003 (Extended List) or FSS-0001 (Extended).

For the above Rule Types, settings may be specified only once whereas the others may be specifed multiple times.

The settings Rule Type is always processed first, regardless of position.

The other Rule Types are processed top-down.

The settings Rule Type has the following FSS-0001 (Extended):

  • affinity: One or more Content, each must be a 0 or greater whole number.
  • capability: One Content representing capabilities.
  • cgroup: Two or more Content, the first Content being either existing or new and the remaining representing a valid cgroup (control group) name, must have at least 1 graph character (non white space printing character) (leading and trailing white space are trimmed off).
  • define: Two Content, the first Content must be a case-sensitive valid environment variable name (alpha-numeric or underscore, but no leading digits).
  • engine: One or more Content representing a valid program name or path (such as bash or /bin/bash) and any optional arguments.
  • environment: Zero or more Content, each must be a case-sensitive valid environment variable name (alpha-numeric or underscore, but no leading digits).
  • group: One or more Content representing group names or group ids.
  • limit: Three Content, with the first representing a valid resource type and the second and third being a valid resource limit number (positive whole number or 0).
  • name: One Content, must have at least 1 graph character (non white space printing character) (leading and trailing white space are trimmed off).
  • nice: One Content, must be a valid number for process niceness (Any whole number inclusively between -20 to 19).
  • on: Four Content, the first being a Rule Action, the second being need, want, or wish, the third being a partial path, and the fourth being a Rule file name without .rule extension.
  • parameter: Two Content, the first Content must be a case-sensitive valid IKI name and the second being an IKI value.
  • path: One Content representing a valid PATH environment string (such as /bin:/sbin:/usr/bin).
  • scheduler: One or two Content representing a scheduler name and the optional numeric priority (Any whole number inclusively between 0 and 99).
  • timeout: One or two content with the first being one of exit, start, stop, or kill and the (optional) second Content being a positive whole number or 0.
  • user: One Content representing a user name or user id.

The command and script Rule Types allow the following the FSS-0001 (Extended):

  • freeze: One or more Content representing a program being executed and its arguments.
  • kill: One or more Content representing a program being executed and its arguments.
  • pause: One or more Content representing a program being executed and its arguments.
  • reload: One or more Content representing a program being executed and its arguments.
  • rerun: Two or more Content representing a Rule type that executes and its properties.
  • restart: One or more Content representing a program being executed and its arguments.
  • resume: One or more Content representing a program being executed and its arguments.
  • start: One or more Content representing a program being executed and its arguments.
  • stop: One or more Content representing a program being executed and its arguments.
  • thaw: One or more Content representing a program being executed and its arguments.
  • with: One or more Content representing special options for the Rule Type.

The service and utility Rule Types allow the following the FSS-0001 (Extended):

  • pid_file: One Content representing the path to a PID file.
  • rerun: Two or more Content representing a Rule type that executes and its properties.
  • with: One or more Content being one of full_path, session_new, or session_same.

The command and service Rule Types allow the following the FSS-0003 (Extended List):

  • freeze: A list repesenting multiple programs and their respective arguments to execute.
  • kill: A list repesenting multiple programs and their respective arguments to execute.
  • pause: A list repesenting multiple programs and their respective arguments to execute.
  • reload: A list repesenting multiple programs and their respective arguments to execute.
  • restart: A list repesenting multiple programs and their respective arguments to execute.
  • resume: A list repesenting multiple programs and their respective arguments to execute.
  • start: A list repesenting multiple programs and their respective arguments to execute.
  • stop: A list repesenting multiple programs and their respective arguments to execute.
  • thaw: A list repesenting multiple programs and their respective arguments to execute.

The script and utility Rule Types allow the following the FSS-0003 (Extended List):

  • freeze: A list repesenting the contents of a script, such as a GNU Bash shell.
  • kill: A list repesenting the contents of a script, such as a GNU Bash shell.
  • pause: A list repesenting the contents of a script, such as a GNU Bash shell.
  • reload: A list repesenting the contents of a script, such as a GNU Bash shell.
  • restart: A list repesenting the contents of a script, such as a GNU Bash shell.
  • resume: A list repesenting the contents of a script, such as a GNU Bash shell.
  • start: A list repesenting the contents of a script, such as a GNU Bash shell.
  • stop: A list repesenting the contents of a script, such as a GNU Bash shell.
  • thaw: A list repesenting the contents of a script, such as a GNU Bash shell.

The rerun Rule Type Content has the following structure.

  • The first Content represents one of: freeze, kill, pause, reload, restart, resume, start, stop, or thaw.
  • The second Content represents one of: success or failure.
  • The third and more Content represents one of: delay, max, or reset.
  • Where delay and max must be followed by a positive number or the number 0.