Revision history for Ubic 1.60 2016-08-25 * Parametrize terminate signal (thanks to github:and-hom for the patch, see https://github.com/berekuk/Ubic/pull/81) 1.59 2016-03-28 * stable release, no code changes 1.58_01 2015-07-23 * fix PATH hack in ubic-watchdog (thanks to David Djurberg for pointing this, see https://groups.google.com/forum/#!topic/ubic-perl/dAY9S3mXoVM) * Small optimization of Ubic::Service::Utils::wait_for_status to prevent last sleep (thanks to github:Logioniz for pointing this out, see https://github.com/berekuk/Ubic/issues/76) * SimpleDaemon supports 'pidfile' and 'proxy_logs' options (thanks to github:dionys for the patch, see https://github.com/berekuk/Ubic/pull/69) 1.58 2015-01-28 * SimpleDaemon: customizable stop_timeout (thanks to github:nwtour for the patch, see https://github.com/berekuk/Ubic/pull/73) * SimpleDaemon: sigusr1 and sigusr2 custom commands (thanks to github:bacek for the patch, see https://github.com/berekuk/Ubic/pull/70) * Ubic::Ping - check via 127.0.0.1 instead of localhost (thanks to github:eightn for the patch, see https://github.com/berekuk/Ubic/pull/71) 1.57_01 2014-08-11 * fix Ubic::Credentials::OS::POSIX 'eq' method 1.57 2013-11-21 * fix various documentation typos (thanks to github:dsteinbrunner and github:akarelas for patches) * modernize Ubic::Ping to respond with http 1.1 message and a proper content-type header (thanks to github:alnewkirk) 1.56 2013-07-30 * Reformatted Changes as per CPAN::Changes::Spec (thanks to github:sergeyromanov for the patch, see https://github.com/berekuk/Ubic/pull/55) 1.55 2013-07-26 * support PERLBREW_ROOT (thanks to github:spacebat for the patch, see https://github.com/berekuk/Ubic/pull/54) 1.54 2013-05-28 * 'auto_start' option in Ubic::Service and SimpleDaemon 1.53 2013-05-18 * fix crontab generation on setup! 1.52 2013-05-12 * always add /usr/local/bin to $PATH 1.51 2013-04-14 * autoflush stdout and stdin in ubic-guardian (especially when we're proxying daemon's logs) 1.50_01 2013-04-03 * support 'term_timeout' option in SimpleDaemon 1.49 2013-03-13 * stable release, no code changes 1.48_02 2013-02-26 * 'ubic status' exits with status code 0 if there're disabled services 1.48_01 2013-01-31 * guardian supports logs proxying and reopening them on SIGHUP (see https://github.com/berekuk/Ubic/pull/47) * hint about 'ubic help' on unknown command 1.48 2012-12-07 * detect ubic-watchdog location and put its full path to the crontab on setup * 'ubic help' command (see https://github.com/berekuk/Ubic/issues/31) 1.47 2012-12-03 * compatibility with perl 5.17 hash randomization (see https://github.com/berekuk/Ubic/issues/45) * append watchdog logs in crontab (instead of rewriting) 1.46 2012-11-08 * require modern BSD::Resource version (see https://github.com/berekuk/Ubic/issues/43) * relax timing conditions in t/watchdog.t 1.45 2012-11-01 * more robust t/simple-daemon.t 1.44_03 2012-10-30 * setup process now offers auto-configuration * typo fix in crontab code (thanks to Anton Ukolov) 1.44_02 2012-10-30 * Solaris compatibility (thanks to Martin Schultheis!) 1.44_01 2012-08-02 * support perlbrew, custom PATH and custom PELR5LIB 1.44 2012-06-21 * stable release, no code changes 1.43_04 2012-06-20 * fix SimpleDaemon to work on perl <5.14 1.43_03 2012-06-20 * fix tests for systems which don't set LOGNAME or USERNAME 1.43_02 2012-06-19 * dependency on BSD::Resource is optional in code and tests 1.43_01 2012-06-19 * ulimit support in SimpleDaemon * json-style configs * 'start_hook' option in start_daemon() 1.43 2012-06-16 * actually merge the fix 1.42 2012-06-15 * critical bugfix: fix credentials application order (all non-root services were broken when operated from root, 1.39-1.41 releases were affected) 1.41 2012-06-11 * pid2cmd doesn't die on errors * Ubic::Run supports the explicit service names * lots of minor POD spelling fixes and improvements 1.40 2012-05-27 * improve tests stability 1.39 2012-05-23 * new SimpleDaemon options: - reload_signal - daemon_user/daemon_group * 'credentials' option in start_daemon() * various doc improvements 1.38_01 2012-04-23 * freebsd credentials fix - set real uid first and effective uid after that 1.38 2012-04-14 * stable release 1.37_03 2012-04-13 * log early exiting daemons correctly; fix tests 1.37_02 2012-03-28 * non-root dir multiservices allow operations without --force * minor docs improvements, including replacing "flexible perl-based" with "polymorphic" everywhere 1.37_01 2012-03-27 * Ubic::Daemon::OS::Linux: fix guid calculating code * Ubic::Daemon: - better logging - die if can't calculate guid 1.37 2012-03-15 * Ubic::UA pod * prohibit building on Solaris 1.36_02 2012-02-15 * ubic.ping improvements: - use Ubic::UA instead of LWP::UserAgent to reduce the number of dependencies - increase timeout options to avoid start failures on slow systems 1.36 2011-12-09 * Ubic::Multiservice::Dir: don't warn about configs with taboo extensions 1.35_02 2011-11-17 * custom service loaders: - ini-style syntax for configs with .ini extension - extension-based polimorphism which will let us implement more config syntaxes in the future * always sync pidfiles and status files to disk * small doc and output message improvements 1.35_01 2011-11-04 * ubic-admin: - fix local installation mode - document all command-line options 1.35 2011-10-07 * fix build - ubic-daemon doesn't fail compile test if ubic is not installed 1.34 2011-09-25 * example system paths in setup depend on os * contrubitors section in Ubic.pm 1.33_04 2011-09-20 * use pure perl for mkdir and chmod operations 1.33_03 2011-09-20 * fix typo in the path to freebsd ubic.cfg 1.33_02 2011-09-20 * comply to hier(7) on freebsd * ubic-daemon improvements: - pod advicing not to use this script - --stop and --list features - use Ubic::Settings instead of hard-coded pid_dir path 1.33_01 2011-09-02 * fix setup.t - don't fail if ubic is already installed * more questions in Ubic::Manual::FAQ, other various doc improvements * partially align status column on 'ubic status' command * silently skip configs with taboo extensions, complain about others to stderr (see https://github.com/berekuk/Ubic/issues/15) * Ubic::Daemon on linux doesn't fail if can't read from /proc cmdline file: there are cases when it is a possible state (usually after reboot) 1.33 2011-07-22 * stable release 1.32_04 2011-07-18 * don't mess with crontab on setup tests (see https://github.com/berekuk/Ubic/issues/17) 1.32_03 2011-07-17 * fix daemon tests 1.32_02 2011-07-13 * Ubic::Daemon improvements: - 'cwd' and 'env' options (SimpleDaemon now just passes them to start_daemon()) - log signal name, exit code and other events to ubic_log prettier and more consistently * document 'cwd' and 'env' options in Ubic::Service::SimpleDaemon 1.32_01 2011-07-13 * new options in Ubic::Service::SimpleDaemon: - cwd - set daemon working dir - env - set daemon environment * minimal setup test 1.32 2011-07-07 * Fix ubic-admin setup again. Sorry. 1.31 2011-06-30 * fix ubic-admin setup - forgot to import IO::Handle (https://github.com/berekuk/Ubic/issues/13) 1.30 2011-06-28 * Ubic::AtomicFile for storing any file safely * POD improvements: - Ubic::Manual::Overview - Ubic::Service::SimpleDaemon now makes sense 1.29 2011-06-07 * ubic-admin script: fix crontab install when user doesn't have previous crontab * ubic script: fix 'ubic unknown-cmd' error reporting * watchdog improvements: - don't ask for status twice if service works - permanently set credentials instead of using forks for non-root services - log status obtained by status check, instead of just logging 'service is broken' * POD improvements: - Ubic::Manual::Intro - Ubic::Manual::Multiservices - various POD fixes 1.28 2011-04-21 * 'ubic status' always shows non-cached statuses if called by root * ubic.ping status now uses sane timeout when it checks service via http 1.27 2011-04-17 * ubic-admin script: - system-wide setup with one command 'ubic-admin setup' - home directory setup with the same 'ubic-admin setup' command - batch-mode with flag "--batch-mode" * configurable default_user (very helpful for home directory setup) * 'ubic status' changes: - real status will be checked and printed if current user is equal to service user - "Not a root, printing cached statuses" message removed; instead, 'ubic status' will print "[cached]" note for every cached status * ubic-ping service renamed to ubic.ping * ubic-watchdog and ubic-update now run as ubic.watchdog and ubic.update services instead of cron jobs; "ubic-watchdog ubic.watchdog" cron job is still recommended. * ubic-periodic script for recurrent job running 1.26 2011-04-10 Hotfix release (https://github.com/berekuk/Ubic/issues/12): * don't depend on Win32 modules * stale Win32 code removed (it didn't work anyway, so there is no point in packaging it in CPAN releases). 1.25 2011-03-31 * MacOSX support (and probably other POSIX systems too, including FreeBSD) * lots of refactoring: - Ubic::Daemon::OS modules family for OS-specific daemonization tasks - Ubic::Credentials::OS modules family for OS-specific user/group tasks 1.24 2011-02-23 * ubic-watchdog: change process name while checking specific service * check that uid change was successful before calling service action methods * default check_timeout() lowered from 10 minutes to 1 minute 1.23 2010-12-02 * ubic-ping: 404 message content fixed * ubic-watchdog: - set check_timeout alarm a bit earlier - another alarm before compiling services 1.22 2010-11-07 * Ubic::Multiservice: - default implementation of 'has_simple_service' method - POD improvements 1.21_01 2010-10-21 * fixed races in t/daemon.t 1.21 2010-10-19 * Ubic.pm: - set_ubic_dir() renamed to set_data_dir() (set_ubic_dir still remains in code for backward compatibility) - get_data_dir() and get_service_dir() methods - UBIC_LOCK_DIR, UBIC_TMP_DIR and UBIC_WATCHDOG_DIR env variables are deprecated; UBIC_DIR variable or set_data_dir() method should be used instead - bugfix in forked_call() method - it thrown "temp file not found after fork" exception occasionally in some cases - more consistent params validation in many methods * ubic-watchdog improvements: - separate non-blocking per-service lock (http://github.com/berekuk/ubic/issues#issue/1) - ubic-watchdog can now check selected set of services by name or glob - ubic-watchdog kills itself after $service->check_timeout() seconds * deprecated Ubic::Catalog module removed (it was renamed into Ubic::Multiservice long time ago) 1.20 2010-10-13 * documentation improvements 1.19 2010-09-14 * ubic-watchdog always uses Ubic->status interface to check service status 1.18 2010-09-14 * critical bugfix: ubic-watchdog correctly interpret extended statuses (thanks to Sawyer X for noticing this, see http://github.com/berekuk/Ubic/issues#issue/7) * Ubic::Lockf::Alarm moved to separate file, so PODs are now correct 1.17 2010-09-13 * Ubic::Run: recognize RedHat init script names (thanks to Sawyer X for the patch, see http://github.com/berekuk/Ubic/issues/#issue/5) * test improvements: - ubic-ping uses Config.pm to determine full perl binary path - memory-leak.t is more robust 1.16 2010-09-07 * Ubic::Daemon: - check_daemon() now returns proper Ubic::Daemon::Status object - don't log warning if daemon exited by sigterm - minor logging cleanup * Ubic::Service::SimpleDaemon returns daemon pid in status msg * test improvements: - using Test::TCP when testing ubic-ping - watchdog.t skips all tests if 'fakeroot' is not present * Ubic::Cmd: print 'running' result as good when it contains extended message 1.15 2010-09-06 * tests fixed to work under root user (http://github.com/berekuk/Ubic/issues#issue/4) 1.14 2010-09-02 * handle supplementary groups correctly * ubic-watchdog doesn't require root privileges anymore (unless service requires them, of course) * repo and bugtracker resources in META.yml * PodWeaver in dist.ini config, so all modules now have proper AUTHOR and COPYRIGHT sections * SimpleDaemon and Common services accept arrayref as 'group' value 1.13 2010-09-01 * Perl6::Slurp removed from dependencies * Ubic::Manual::FAQ now is actually added * group() method in services: - services can specify group(s) from which service should run, analogous to user() method - ubic will call setgid() before invoking any service methods - default group list consists only of main user's group, as returned by getpwnam; supplementary groups are not supported yet 1.12 2010-08-26 * Ubic::Manual::FAQ with first 2 questions * Ubic::Log documentation updated according to 1.11 changes 1.11 2010-08-26 * ubic-watchdog prints errors to stdout only 1.10 2010-08-18 * security bugfix: store all statuses in JSON format 1.09 2010-08-12 * bugfix: custom commands print 'ok' using green color and exit with zero code when there are not errors 1.08 2010-08-03 * bugfix: has_service for nested unexistent services * debian/ dir in distribution too 1.07 2010-07-30 * localize $@ in destructors * Ubic::Cmd refactoring, more consistent console results printing 1.06 2010-06-18 * using $Config{perlpath} in tests - should fix CPAN tests * Dist::Zilla 1.05 2010-06-13 MANIFEST up-to-date. Small POD improvements. 1.04 2010-05-25 - important bugfix: service locks fixed! - Ubic::Daemon: join all bin args if bin is arrayref. - Remove old configs from old yandex-ubic package. 1.02 2010-05-04 Remove old configs from old yandex-ubic package. 1.01 2010-04-29 Just fixing debian dependency issues. 1.00 2010-04-28 First opensource release.