* 1.5.13 - Nov 2 2018 - Add reliance on "basic.target" in addition to being a part of "multi-user", as one may not imply the other in all cases anymore * 1.5.12 - Jun 5 2017 - Update summary, description, compatability. Mark as production-ready. - Update systemd install.sh to better support package installs, (support DESTDIR param) * 1.5.10 - Sep 8 2016 - Fix missing Install section in systemd unit * 1.5.9 - Sep 8 2016 - Add systemd integration (a unit file), and instructions on how to use. * 1.5.8 - Jul 28 2016 - Fix rare chance when program crashes for variable to be undefined * 1.5.6 - Jun 27 2016 - Improve logging when starting a program, including prefixing each with ($programName), noting when a match is made, etc - Improve documentation a lot - Improve some log strings * 1.5.5 - Jun 23 2016 - When we fail to match a child with proctitle_re, include "within success_seconds=X seconds" within the error message. The intent is to direct folks to looking into if maybe they need to increase that value from the default, for example if it takes 5 seconds to start their application, or if the application changes its proctitle after so many seconds. - Documentation - Improve spacing, word use, etc to make things more clear - Documentation - Add a paragraph about how usrsvc starts a process - Documentation - Add a paragraph about how usrsvc/usrsvcd works with "scan_for_process", and some notes on proctitles - Documentation - Have "usrsvc --readme" use README.md (markdown) - which is MUCH MORE READABLE than README.rst (resucktured text) - Help Messages - Cleanup "--help" messages, making them neater and cleaner. - Documentation - Move "Process Identification" section below Design, for better grouping. - Help Messages - Cleanup --readme output to remove escapes * 1.5.3 - Jun 17 2016 - Allow 'usrsvc --help' and 'usrsvc --readme' without ~/usrsvc.cfg (as intended) * 1.5.2 - Jun 16 2016 - Allow "usrsvc stop" on Programs with enabled=0 (the intention is that usrsvcd will not manage it). This makes sense to suspend a program running, stop it, and resume later. * 1.5.1 - Jun 9 2016 - Fix typo in docs (mail_alerts -> email_alerts) * 1.5.0 - Jun 1 2016 - Change the way that process start matching works, such that it has much better support for when the process listed as "command" actually launches a child process, which is to be matched by "proctitle_re" - Add support for "--version" - Remove lock if usrsvc has an error, which prevents a needless up to 30 second delay (if usrsvc hits a bug) * 1.4.1 - May 30 2016 - Add "-P" as an alias to "--parallel" for usrsvc application - Remove lingering old "usrsvc --help" output in README.md * 1.4.0 - May 30 2016 - Add alert mail functionality - When a program is started/restarted and "email_alerts" is set on a program config, an email will be sent to that address. Also adds "sendmail_path" on MainConfig, which defines an explicit location of the "sendmail" program. Default is to try to find it on PATH and in common places. - Fix issue where usrsvcd would try to start a process after usrsvc stopped it, if "usrsvc restart" was issued. This tests if usrsvc is holding a lock on a program before testing if it's down and before restarting. Only one instance would have been started, but it's excess work and logging. - Add util function to search PATH for an executable. If not given absolute path when calling usrsvcd, search PATH first, otherwise try to identify based on relative and cwd. This adds the last option (like when calling with relative path into a virtualenv), since the second was implicit prior. - Some minor cleanups and tunings * 1.3.5 - ??? ?? ???? - Update time reported in Activity File log. It was reporting the number of seconds past the threshold, but it makes more sense to report the total age. * 1.3.4 - May 27 2016 - Remove unintentional change that caused restarts/startups happen async. They should have always been parallel * 1.3.3 - May 23 2016 - When useshell=True, give up to success_seconds for the subprocess of the shell to start. This covers if some pre-tasks take a few seconds to perform before the final app is started. * 1.3.2 - May 23 2016 - Fix issue when proctitle_re is provided. - Better handle automatic proctitle_re when '&&' is used in a command. - Make useshell default to False. - When useshell is True, ensure we dont match the wrapping shell process but the final process itself. * 1.3.1 - May 23 2016 - Instead of calling "usrsvc" as a subprocess from "usrsvcd", move the usrsvc client into a module and have usrsvcd fork and execute it. This allows usrsvcd to continue to manage processes after a bad configuration, by having usrsvc inherit the previous configuration as stored in usrsvcd. - If "usrsvcd restart" was called with an absolute path to usrsvcd, use that same path (incase usrsvcd is not on PATH). * 1.2.6 - May 23 2016 - Wait 1 second after spawning subprocess during "usrsvcd restart", or we may exit before child process is created. - Inherit env during "usrsvcd restart" to inherit any PATH * 1.2.5 - May 17 2016 - Fix program stop not working after refactoring * 1.2.4 - May 16 2016 - Fix some typos found by Sergey Fukanchik. Thanks! * 1.2.3 - May 16 2016 - Fix stupid RST MISformatting of README. Why can't it use markdown? * 1.2.2 - May 11 2016 - Wait longer before sending kill -9 for "usrsvcd stop" - Add "usrsvcd start" which is same as just "usrsvcd" but intuitive. - Add a --readme option which will print the README - Cleanup the usage for usrsvc * 1.2.1 - Apr 28 2016 - Fix README path - Ensure dict keys when printed in error messages are str(list) instead of just str() because python3 otherwise adds "dict_keys(['blah'])" to the str. * 1.2.0 - Mar 21 2016 - Refactoring of Monitoring to allow more and better monitoring - Add new property to Monitoring, rss_limit, which if specified will cause the program to restart if it exceeds that many kB of Resident Set Size (private memory) - Some fixes and improvements to using --debug - Set a maximum 3-second timeout to run monitors per program, so some issue with some monitor is isolated * 1.1.1 - Mar 11 2016 - Turns out python 2.7.8 does not have the enum type, and we should support older python 2.7s, so give a fallback method for returnCodeToString that doesn't rely on enum * 1.1.0 - Mar 11 2016 - Add "--parallel" flag that can be used with "usrsvc start/stop/restart all" to perform the action in parallel instead of serially. - Instead of a flat "did" or "did not" start, capture more conditions on WHY we couldn't start a program - Much more logging in the realm of starting programs, relating to conditions of failure - Add more error codes to ReturnCodes for more specific reasons of failure - Implement ReturnCodes.returnCodeToString which will get the string representation of the return code. - Use the string representation of return codes in logging - Be more verbose in several places with logging - Change from raising exceptions in startProgram to returning relevant error code for better reporting * 1.0.0 - Mar 9 2016 - Initial Beta Release