aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: 2dd22ae61c33b70fbb85802dc1b1baf0e0d170d7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
NAME
	sat - A simple incompatible implementation of at(1).

DESCRIPTION
	sat is a simple implementation of at(1). But is not compatible
	with at(1). It is used to queue jobs to be executed later, outside
	the current controlling terminal.

	sat can also print and edit the list of queued jobs.

	If you are using autohaltd(8), you should set up hooks for at(1)
	that pauses autohaltd(8) using SIGSTOP (and resume with SIGCONT)
	when there are queued jobs. This would prevent autohaltd(8) from
	shuting down the machine while there are queued jobs but no logins.
	sat cannot stop autohaltd(8) by adding login entries, because
	autohaltd(8) will only recognise them if they are in fact true
	logins.

RATIONALE
	at(1) is far too complex.

	sat does not do natural language time parsing, it is far too complex,
	and locale dependent, for all programs to implement and should be
	done in a separate program. Not even GNU date(1) gets this right.
	sat does however do some trivial parsing.

	sat does not sanitise the environment. You have env(1) for that.
	Relaying on sat to sanitise the environment appropriately could prove
	to be a misfortune.

	sat does not do mailing because that is very restrictive, hooks are
	used instead.

	sat does not do system load analysis, this should be done in a
	separate program.

	sat only has one queue, queue can easily be emulated using dummy
	commands, for example instead of 'my command', you can run
	'sh -c ": QUEUE-a ; my command"'.

	at(1) should not be merged into cron(8). cron(8) does recurring
	scheduled jobs, at(1) does one-time unscheduled jobs. atq(1) does
	not translate to cron(8).

ENVIRONMENT
	XDG_RUNTIME_DIR
		This environment variable names the directory in which
		interprocess communication related files are stored. If
		unset or empty, /run is used.

	SAT_HOOK_PATH
		The pathname of the hook script to use. Does not have to
		already exist. If not defined, $XDG_CONFIG_HOME/sat/hook
		(if XDG_CONFIG_HOME is defined), $HOME/.config/sat/hook
		(if HOME is defined), ~/.config/sat/hook (if the user has
		a home and is not root), or /etc/sat/hook (otherwise) is
		used.

FUTURE DIRECTIONS
	sat-atcompat will be written to bring compatibility with
	old school at(1).

NOTES
	nohup(1) combined with sh(1) and, sleep(1) or sleep-until(1)
	should be sufficient for most users.

	sat stores the job queue in a file. However, this file does not
	persist between reboot.

SEE ALSO
	at(1), cron(1), sleep-until(1)