Как запустить / остановить приложение Rails из плагина Maven exec? - PullRequest
0 голосов
/ 26 февраля 2011

Я пытаюсь запустить приложение Rails из плагина Maven exec.Я использую ./script/rails server для запуска сервера и kill -9 cat tmp/pids/server.pid для остановки сервера.Но exec продолжает ждать после запуска сервера.Можно ли запускать такие команды оболочки в фоновом режиме и не ждать?Есть ли лучший способ запустить / остановить приложение rails из Maven?Вот мой pom.xml:

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <id>start-rails-app</id>
                        <phase>pre-integration-test</phase>
                        <configuration>
                            <executable>script/rails</executable>
                            <workingDirectory>${rails.app.dir}</workingDirectory>
                            <arguments>
                                <argument>server</argument>
                            </arguments>
                        </configuration>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>stop-rails-app</id>
                        <phase>post-integration-test</phase>
                        <configuration>
                            <executable>kill -9 `cat tmp/pids/server.pid`</executable>
                            <workingDirectory>${rails.app.dir}</workingDirectory>
                        </configuration>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

1 Ответ

1 голос
/ 26 февраля 2011

Передайте аргумент -d, чтобы запустить сервер как демон: rails server -d.

Вот подробные данные команды rails server:

rails server -h
Usage: rails server [mongrel, thin, etc] [options]
    -p, --port=port                  Runs Rails on the specified port.
                                     Default: 3000
    -b, --binding=ip                 Binds Rails to the specified ip.
                                     Default: 0.0.0.0
    -c, --config=file                Use custom rackup configuration file
    -d, --daemon                     Make server run as a Daemon.
    -u, --debugger                   Enable ruby-debugging for the server.
    -e, --environment=name           Specifies the environment to run this server under (test/development/production).
                                     Default: development
    -P, --pid=pid                    Specifies the PID file.
                                     Default: tmp/pids/server.pid

    -h, --help                       Show this help message.
...