I'm not thinking about pure scheduled tasks, but rather things where a daemon in the background will automatically trigger a script when certain conditions are met.

For those who have used Tasker on Android, you probably have an idea of what I'm talking about already. For those who don't, this would include things like:


automatically triggering scripts when a Macbook is plugged in or unplugged; or 
having the computer automatically go into sleep mode when it gets a certain message (via an open port, or email, or whatever), and similarly wake up again; or
automatically opening a connection to a file server on the same network at a certain time of day; and so on.


I've seen assorted software tools to do this kind of thing piecemeal, but I'd be extremely curious in finding any mostly-integrated way, premade or homebrew, to accomplish the same kind of flexibility in automation that I've gotten used to on my phone.

I also figure this question will be most helpful if applied across the range of OSes rather than more limited.


Question: when two associations are equal?
Answer: Perhaps as Pickett describes the developers do not consider these associations Equal since that function performs other conversions like:

Quantity[5, "Percent"] == 0.05



True



But perhaps Equal has not been (properly?) extended to associations yet as 2.0 and 2 are Equal but these are not:

&lt;|a -&gt; 2|&gt; == &lt;|a -&gt; 2.0|&gt;



False





Depending on what you are doing this might be useful, but beware it does not have early exit (short-circuit) behavior:

eq[{x_}] = False;
eq[{x__}] := Equal[x]

one = &lt;|a -&gt; 2, b -&gt; 3|&gt;;
two = &lt;|b -&gt; 3, a -&gt; 2.0|&gt;;

And @@ Merge[{one, two}, eq]



True