-- script to show how SystemDSM can be used -- -- on server startup (or via runSystemDSM), the "startup" event is processed. -- on config reload, the "reload" event is processed; here we only send an -- event to the main SystemDSM thread initial state START; transition "startup" START - startup / { log(2, "Here we are!"); logAll(2); setTimer(1, 20); -- register a friendlier name registerEventQueue(system_dsm); } -> RUNNING; -- this gets called when script config is reloaded transition "reload" START - reload / { set($cmd="reload"); postEvent(system_dsm, cmd); -- or: postEvent(system_dsm, var) to post all variables, -- including changed config (#config.*) stop(false); } -> END; state RUNNING; transition "timer hit" RUNNING - timer / log(2, "still there!"); setTimer(1, 20); -> RUNNING; transition "shutdown" RUNNING - system / unregisterEventQueue(system_dsm); stop(false) -> END; transition "stop cmd" RUNNING - eventTest(#cmd=="stop") / logAll(2); unregisterEventQueue(system_dsm); stop(false) } -> END; transition "reload cmd" RUNNING - eventTest(#cmd=="reload") / log(2, "got refresh"); logParams(2); -> RUNNING; transition "some other event" RUNNING - event / logAll(2) -> RUNNING; state END;