2006-10-09 16:21:24 +01:00
|
|
|
mini-at
|
|
|
|
========================================================================
|
|
|
|
(c)2006, Laurence Withers, <l@lwithers.me.uk>.
|
|
|
|
Released under the GNU GPLv2. See file COPYING or
|
|
|
|
http://www.gnu.org/copyleft/gpl.html for details.
|
|
|
|
|
|
|
|
Really Quick Instructions
|
|
|
|
-------------------------
|
|
|
|
|
|
|
|
To build: ./make.sh
|
|
|
|
To install: ./make.sh install
|
|
|
|
(you might want to set PREFIX, by default it's /usr/local)
|
|
|
|
|
|
|
|
Rationale
|
|
|
|
---------
|
|
|
|
|
|
|
|
Why this and not the standard `at' suite?
|
|
|
|
|
|
|
|
1) Deals with non-monotonic time (unfortunately this means we have to
|
|
|
|
wake up once every so often to check if our time is too far out).
|
|
|
|
2) Simpler specification of timestamp (uses ISO8601).
|
|
|
|
3) Allows redirection of stdin from a file which is automatically
|
|
|
|
deleted.
|
|
|
|
4) Flexible user control through use of Uinx sockets.
|
|
|
|
|
2006-10-10 16:58:06 +01:00
|
|
|
Instructions
|
|
|
|
------------
|
|
|
|
|
|
|
|
Run the programs with `--help' for a summary.
|
|
|
|
|
|
|
|
The daemon, mini-atd, must be run in the background. It is responsible for keeping track of commands
|
|
|
|
to run and for running them at the appropriate time. The client, mini-at, uses a named socket to
|
|
|
|
communicate with the daemon. By default, the daemon creates this socket at ``~/.mini-atd''.
|
|
|
|
|
|
|
|
The daemon can either run in the foreground (default) or in the background, with the `--daemon' or
|
|
|
|
`-d' option. You can change the name of the socket it uses, and the permissions on the socket. By
|
|
|
|
default, the permissions are 0600. This means that only the user who ran the daemon (or root) can
|
|
|
|
cause commands to be run. Commands are always run as the user who ran the daemon, so it is important
|
|
|
|
to ensure that only trusted users have access to the socket.
|
|
|
|
|
|
|
|
The client uses a time specification in ISO8601. If you don't fully specify the time, it uses the
|
|
|
|
earliest possible interpretation (so `2006' would give `2006-01-01T00:00:00'). If no time zone is
|
|
|
|
specified, UTC is assumed, but it is best to explicitly indicate this with a Z.
|
|
|
|
|
|
|
|
If you wish to provide stdin other than /dev/null for a process, then you can specify a file on the
|
|
|
|
client commandline using `-f' or `--file'. Note that this file will be deleted once the process is
|
|
|
|
run. Alternatively, you can use `-f -' and pipe the content you want to the stdin of the client,
|
|
|
|
which will store a copy in a temporary file.
|
|
|
|
|
|
|
|
If you wish to run one program but pretend that you've run it as something else, you can specify the
|
|
|
|
argv0 option in the client. By default, this will just be a copy of the command name.
|
|
|
|
|
|
|
|
The client will copy its commandline arguments from the shell, and performs no processing on them.
|
|
|
|
This means that it does not expand words or perform quoting.
|