Thank you!

I still disagree with the following statement:

While this is a reasonable expectation, twistd does quite a lot and it wouldn't be quite right to pass on all the arguments in a flat list the way Python does.

Something can be done about that. One possible approach could be to use two argument lists (one - 'twistd' arguments, second - application's arguments) and enforce following rule(s):

- all arguments that follow after 'twistd' but before Python file name (*.py) are considered as 'twistd' arguments (loaded into <twistdArgs> list;
- all arguments that follow Python file name (*.py) are considered as Python application's arguments (loaded into <appArgs> list and get passed to that application)

Thus, it should be possible to execute following commands:

twistd <twistd_args> *.py <app_args>

Using this approach, it should be simple enough (at least - logically) to allow passing arguments to an application. Of course, this would also limit "duplicate" arguments (same argument appearing in both lists) - due to 'getopt' limitations... But if these rules and limitations are well documented - developers should be able to work around this problem.

I suggest that Twisted dev. team looks into implementing this...


Kind regards,

Valeriy Pogrebitskiy




On Oct 1, 2009, at 4:55 PM, Glyph Lefkowitz wrote:

On Thu, Oct 1, 2009 at 2:17 PM, Valeriy Pogrebitskiy <vpogrebi@verizon.net> wrote:
I came across some problem using 'twistd' utility - that I would not have expected from it. The problem is - using 'twistd' to start application that requires command-line arguments. In other words, I would expect that 'twistd' passes command-line arguments to Python application - just as Python does. 

While this is a reasonable expectation, twistd does quite a lot and it wouldn't be quite right to pass on all the arguments in a flat list the way Python does.
 
My question is: how is it possible to use 'twistd' to start applications that do require command-line arguments? Does anyone have suggestions?

twistd doesn't do this for scripts passed with the '-y' option.  Those are supposed to be fully-formed configuration files; the options are present in the file itself.

However, it's fairly straightforward to get what you want.  Instead of writing a python configuration file, write a plug-in for twistd.  The technique for doing so is documented here:

<http://twistedmatrix.com/projects/core/documentation/howto/tap.html>

Hope this helps.
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python