diff options
| author | Bert JW Regeer <bertjw@regeer.org> | 2015-11-12 22:32:52 -0700 |
|---|---|---|
| committer | Bert JW Regeer <bertjw@regeer.org> | 2015-11-12 22:32:52 -0700 |
| commit | dcb01c04929aa8afb065b397f36db5982afc4834 (patch) | |
| tree | 1a7f26e385246422809de4baf89db7f2ab2ef327 | |
| parent | 203cf3accd0bec0cc08eab8e736f26cd0e711d8b (diff) | |
| parent | 2cb0419e3ebcfc4c6671d0325b7fb280bc986001 (diff) | |
| download | pyramid-dcb01c04929aa8afb065b397f36db5982afc4834.tar.gz pyramid-dcb01c04929aa8afb065b397f36db5982afc4834.tar.bz2 pyramid-dcb01c04929aa8afb065b397f36db5982afc4834.zip | |
Merge branch 'master' into feature/int_conversion_check
| -rw-r--r-- | CHANGES.txt | 15 | ||||
| -rw-r--r-- | pyramid/scripts/pserve.py | 41 |
2 files changed, 44 insertions, 12 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index aefb166dc..739eb870d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -237,12 +237,20 @@ Bug Fixes ``timeout``, ``reissue_time``, ``max_age`` that expect an integer value. See https://github.com/Pylons/pyramid/pull/2050 +- Fixed usage of ``pserve --monitor-restart --daemon`` which would fail in + horrible ways. See https://github.com/Pylons/pyramid/pull/2118 + +- Explicitly prevent ``pserve --reload --daemon`` from being used. It's never + been supported but would work and fail in weird ways. + See https://github.com/Pylons/pyramid/pull/2119 + Deprecations ------------ -- The ``pserve`` command's daemonization features have been deprecated. This - includes the ``[start,stop,restart,status]`` subcommands as well as the - ``--daemon``, ``--stop-server``, ``--pid-file``, and ``--status`` flags. +- The ``pserve`` command's daemonization features have been deprecated as well + as ``--monitor-restart``. This includes the ``[start,stop,restart,status]`` + subcommands as well as the ``--daemon``, ``--stop-daemon``, ``--pid-file``, + and ``--status`` flags. Please use a real process manager in the future instead of relying on the ``pserve`` to daemonize itself. Many options exist including your Operating @@ -250,6 +258,7 @@ Deprecations solutions like Circus and Supervisor. See https://github.com/Pylons/pyramid/pull/1641 + and https://github.com/Pylons/pyramid/pull/2120 - Renamed the ``principal`` argument to ``pyramid.security.remember()`` to ``userid`` in order to clarify its intended purpose. diff --git a/pyramid/scripts/pserve.py b/pyramid/scripts/pserve.py index 1bfedf384..01d6383d6 100644 --- a/pyramid/scripts/pserve.py +++ b/pyramid/scripts/pserve.py @@ -69,6 +69,7 @@ class PServeCommand(object): If start/stop/restart is given, then --daemon is implied, and it will start (normal operation), stop (--stop-daemon), or do both. + Note: Daemonization features are deprecated. You can also include variable assignments like 'http_port=8080' and then use %(http_port)s in your config files. @@ -100,13 +101,13 @@ class PServeCommand(object): '--daemon', dest="daemon", action="store_true", - help="Run in daemon (background) mode") + help="Run in daemon (background) mode [DEPRECATED]") parser.add_option( '--pid-file', dest='pid_file', metavar='FILENAME', help=("Save PID to file (default to pyramid.pid if running in " - "daemon mode)")) + "daemon mode) [DEPRECATED]")) parser.add_option( '--log-file', dest='log_file', @@ -127,7 +128,7 @@ class PServeCommand(object): '--monitor-restart', dest='monitor_restart', action='store_true', - help="Auto-restart server if it dies") + help="Auto-restart server if it dies [DEPRECATED]") parser.add_option( '-b', '--browser', dest='browser', @@ -137,7 +138,8 @@ class PServeCommand(object): '--status', action='store_true', dest='show_status', - help="Show the status of the (presumably daemonized) server") + help=("Show the status of the (presumably daemonized) server " + "[DEPRECATED]")) parser.add_option( '-v', '--verbose', default=default_verbosity, @@ -169,7 +171,7 @@ class PServeCommand(object): dest='stop_daemon', action='store_true', help=('Stop a daemonized server (given a PID file, or default ' - 'pyramid.pid file)')) + 'pyramid.pid file) [DEPRECATED]')) _scheme_re = re.compile(r'^[a-z][a-z]+:', re.I) @@ -225,6 +227,10 @@ class PServeCommand(object): cmd = None if self.options.reload: + if self.options.daemon or cmd in ('start', 'stop', 'restart'): + self.out( + 'Error: Cannot use reloading while running as a dameon.') + return 2 if os.environ.get(self._reloader_environ_key): if self.options.verbose > 1: self.out('Running reloading file monitor') @@ -302,7 +308,21 @@ class PServeCommand(object): raise ValueError(msg) writeable_pid_file.close() - if getattr(self.options, 'daemon', False): + # warn before forking + if ( + self.options.monitor_restart and + not os.environ.get(self._monitor_environ_key) + ): + self.out('''\ +--monitor-restart has been deprecated in Pyramid 1.6. It will be removed +in a future release per Pyramid's deprecation policy. Please consider using +a real process manager for your processes like Systemd, Circus, or Supervisor. +''') + + if ( + getattr(self.options, 'daemon', False) and + not os.environ.get(self._monitor_environ_key) + ): self._warn_daemon_deprecated() try: self.daemonize() @@ -312,14 +332,17 @@ class PServeCommand(object): return 2 if ( + not os.environ.get(self._monitor_environ_key) and + self.options.pid_file + ): + self.record_pid(self.options.pid_file) + + if ( self.options.monitor_restart and not os.environ.get(self._monitor_environ_key) ): return self.restart_with_monitor() - if self.options.pid_file: - self.record_pid(self.options.pid_file) - if self.options.log_file: stdout_log = LazyWriter(self.options.log_file, 'a') sys.stdout = stdout_log |
