NAME

inotify.pl - script to daemonize a Linux::Inotify2 handler

SYNOPSIS

inotify.pl --config=inotify.cfg

DESCRIPTION

Script harness for Workflow::Inotify::Handler classes. This is typically launched as a daemon by the inotifyd script or using a systemctl service description.

See Workflow::Inotify::Handler

HOW IT WORKS

The inotify.pl script reads a .ini style configuration file and installs handlers implemented by Perl classes to process kernel events generated from file or directory changes. Using Linux::Inotify2, the script creates instantiates one or more handlers which process directory events and then daemonizes this script.

The Configuration File

The configuration file is a .ini style configuration file consisting of a [global] section and one or more sections named using the convention: [watch_{name}].

Boolean values can be set as '0', '1', 'true', 'false', 'on', 'off', 'yes', or 'no'. Take your pick.

Example:

[global]
daemonize = yes
logfile = /var/log/inotify.log
block = yes
perl5lib = $HOME/lib/perl5

[watch_tmp]
dir = /tmp
mask = IN_MOVE_TO | IN_CLOSE_WRITE
handler = Workflow::Inotify::Handler

Sections are described below.

[global]

The global section contains configuration values used throughout the script. All of the values in the global section are optional.

  • sleep

    Amount of time in seconds to sleep after polling for a watch event.

  • block

    Boolean that indicates if the watcher should block waiting for an event. If you set block to a false value, you should also consider a sleep value.

    default: true

  • logfile

    Name of a file that will receive all STDERR and STDOUT messages.

  • perl5lib

    One or more paths to add to @INC. Paths should be ':' separated.

    Example:

    perl5lib = $HOME/lib/perl5:/usr/local/lib/perl5

    Words that begin with '$' are interpretted to be environment variables (for this variable only).

  • verbose

    Output messages at beginning of script.

    default: true

  • daemonize

    Boolean that indicates whether the script should be daemonize using Proc::Daemon.

    default: false

[watch_{name}]

The watch section contains settings for the directories to watch.

  • dir

    Directory to watch.

    Example:

    [watch_example]
    
    dir =  I</var/spool/junk>.
  • mask

    One or more inotify event names as described in man 7 inotify. These events should be pipe delimited (as in "oring" them together).

    Example:

    mask = IN_MOVED_FROM | IN_MOVED_TO

    These are also described in Workflow::Inotify::Handler.

  • handler

    The name of a Perl class that has at least a handler() method. This handler will be called with a Linux::Inotify::Event object.

    Example:

    handler = Workflow::Inotify::Handler

VERSION

This documentation refers to version 1.0.3

REPOSITORY

https://github.com/rlauer6/perl-Workflow-Inotify.git

AUTHOR

Rob Lauer - <rlauer6@comast.net>

SEE ALSO

Linux::Inotify2