summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert JW Regeer <bertjw@regeer.org>2015-11-12 22:32:52 -0700
committerBert JW Regeer <bertjw@regeer.org>2015-11-12 22:32:52 -0700
commitdcb01c04929aa8afb065b397f36db5982afc4834 (patch)
tree1a7f26e385246422809de4baf89db7f2ab2ef327
parent203cf3accd0bec0cc08eab8e736f26cd0e711d8b (diff)
parent2cb0419e3ebcfc4c6671d0325b7fb280bc986001 (diff)
downloadpyramid-dcb01c04929aa8afb065b397f36db5982afc4834.tar.gz
pyramid-dcb01c04929aa8afb065b397f36db5982afc4834.tar.bz2
pyramid-dcb01c04929aa8afb065b397f36db5982afc4834.zip
Merge branch 'master' into feature/int_conversion_check
-rw-r--r--CHANGES.txt15
-rw-r--r--pyramid/scripts/pserve.py41
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