Opened 17 years ago
Closed 16 years ago
#7049 closed defect (fixed)
tracd: --daemonize and --auto-reload don't cohabitate happily
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Milestone: | 0.11.1 |
Component: | web frontend/tracd | Version: | |
Severity: | normal | Keywords: | patch |
Cc: | remy.blank@… | Branch: | |
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description (last modified by )
When using —daemonize and —auto-reload at the same time the background daemon process exits neatly without any explanation. Having done some digging around, it seems that the root of the problem is in _restart_with_reloader() at utils/autoreload.py line 55. When os.spawnve is called, it uses the full sys.argv which includes the —daemonize argument. My fix for this is:
eng:util qa$ diff -c autoreload.py autoreload.py.save
*** autoreload.py Tue Mar 25 16:52:18 2008 --- autoreload.py.save Tue Mar 25 16:14:51 2008 *************** *** 55,63 **** def _restart_with_reloader(): while True: args = [sys.executable] + sys.argv - if args.count('--daemonize'): - # Stop the insanity - args.remove('--daemonize') if sys.platform == 'win32': args = ['"%s"' % arg for arg in args] new_environ = os.environ.copy() --- 55,60 ----
eng:util qa$
With the logic for removing these arguments being:
- The main program already daemonized, so it doesn't need to be done again
- Things started working more like what I expected after making the change
Attachments (1)
Change History (7)
comment:1 by , 17 years ago
Description: | modified (diff) |
---|
comment:2 by , 17 years ago
comment:3 by , 17 years ago
Milestone: | → 0.11.1 |
---|
Things started working more like what I expected after making the change
But what did you expect, precisely? To me, --auto-reload
is only meant to be used while developing Trac or plugins, and --daemonize
when you use it for "production".
Do you have an use case where they would be useful at the same time?
Also pay attention to the fact that --auto-reload
has a not so insignificant performance cost, as there will be a process continuously monitoring for source code changes.
So I think we should rather bark when those two options are used together.
(minor nit-pick: please also have a look about how to create nice patches: TracDev/SubmittingPatches)
by , 16 years ago
Attachment: | no-auto-reload-deamonize.patch added |
---|
Patch against 0.11-stable [7363] disallowing —auto-reload with —deamonize
comment:4 by , 16 years ago
Cc: | added |
---|---|
Keywords: | patch added |
comment:5 by , 16 years ago
Milestone: | 0.11.2 → 0.11.1 |
---|---|
Owner: | changed from | to
Type: | enhancement → defect |
I'm OK with the patch.
Does anyone has a valid use case for using --daemonize
and --auto-reload
at the same time? If nobody speaks up, I'll commit the patch for 0.11.1.
Replying to bschmer@yahoo.com:
See ticket:4531:6