Exemple #1
0
        static string BuildArguments(ConfigurationManager configurationManager, string shimSocket, string root, string onDemandSock)
        {
            var builder = new ProcessArgumentBuilder();

            builder.AddSingle(shimSocket, GetFastCgiCommand(configurationManager.FastCgiCommand));
            if (configurationManager.Verbose)
            {
                builder.Add("--verbose");
            }
            builder.Add("--ondemand");
            builder.AddFormatSafe("--applications /:'{0}'", root);
            builder.Add("--idle-time", configurationManager.ChildIdleTime);
            builder.AddFormatSafe("--ondemandsock 'unix://660@{0}'", onDemandSock);
            builder.AddFormat("--loglevels {0}", configurationManager.LogLevels);
            builder.AddFormatSafe("--name '{0}'", Path.GetFileName(root));
            var arguments = builder.ToString();

            return(arguments);
        }
Exemple #2
0
        public static void SpawnShim(ConfigurationManager configurationManager, string socket, string configFile)
        {
            if (configurationManager == null)
            {
                throw new ArgumentNullException("configurationManager");
            }
            if (socket == null)
            {
                throw new ArgumentNullException("socket");
            }
            if (configFile == null)
            {
                throw new ArgumentNullException("configFile");
            }
            if (configFile.Length == 0)
            {
                throw new ArgumentException("Config file name can't be empty", "configFile");
            }
            var builder = new ProcessArgumentBuilder();

            builder.AddSingle(socket, GetFastCgiCommand(configurationManager.FastCgiCommand));
            builder.Add("--ondemand");
            builder.AddFormatSafe("--configfile '{0}'", configFile);
            var arguments = builder.ToString();

            var startInfo = new ProcessStartInfo {
                FileName        = configurationManager.ShimCommand,
                Arguments       = arguments,
                UseShellExecute = false
            };

            if ((configurationManager.LogLevels & LogLevel.Debug) != LogLevel.None)
            {
                startInfo.EnvironmentVariables.Add("DEBUG", "y");
            }

            if (configurationManager.Verbose)
            {
                startInfo.EnvironmentVariables.Add("VERBOSE", "y");
            }

            var process = new Process {
                StartInfo = startInfo
            };

            Logger.Write(LogLevel.Debug, "Spawning shim \"{0} {1}\"", configurationManager.ShimCommand, process.StartInfo.Arguments);
            process.Start();
        }