Joe Orton wrote: > On Tue, May 29, 2007 at 06:36:07PM -0500, William Rowe wrote: >> I'm retracting my two proposed choices and going with Option #3 :) Does >> anyone object to Jeff's weird proposal below? I think it's the best of >> both worlds. > > *Guessing* whether the user wants to use a shell based on some syntactic > analysis of the command line sounds awful. "When I renamed my logrotate > command to 'super|logger' why does the server start behaving like > <xyz>?" "Why does my server only start doing <abc> when I use "| cat" > in the piped logger command?" > > Having a specific syntax like your "||" proposal to allow users to > explicitly avoid a shell is one thing: otherwise, again: why should > httpd grow lots of fugly code to work around an APR bug?
Perhaps you missed the bottom line - both || and |$ would be grokked. No ambiguity, second guessed only for non-explicit cases. Most folks don't NEED the shell in the way - but Jeff's patch late in 2.0 added this as a feature for those who would like to "|logresolve|rotatelogs" or similar, the edge case. And this IS NOT strictly an APR bug, it's the waste of one, or thousands (in the case of a mass vhost) useless shells running on the system. So I personally like two separate, explicit commands, and the option to pick the right flavor. Tell me a platform that any sane admin will include a pipe symbol in the name of the file. Win/OS kernels don't allow it. Unix only tolerates it when it's escaped. Your example above is 'super\|logger' maybe. Three pipe symbols to test, and only on startup. I don't see the pain?