Как использовать команду для отключения Grails Run-App - PullRequest
16 голосов
/ 27 августа 2010

После выполнения «grails run-app», кроме использования «Ctrl + C», есть ли команда для его отключения?

Ответы [ 9 ]

13 голосов
/ 01 ноября 2013

Для Stop Server:

Выйдите из терминала и используйте любую команду снизу

  • выход Грааля
  • Grails Stop-App
  • Граальс ушел
12 голосов
/ 27 августа 2010

Нет. grails run-app предназначен для запуска в интерактивном режиме.

Если вы хотите управлять Grails как службой, вы должны развернуть его в контейнере веб-приложения, таком как tomcat. Например, плагин tomcat позволяет легко развернуть приложение на tomcat. Добавить строки типа

tomcat.deploy.username="manager"
tomcat.deploy.password="secret"
tomcat.deploy.url="http://myserver.com/manager"

в Config.groovy, а затем вы можете использовать

grails tomcat deploy
grails tomcat undeploy

для запуска и остановки вашего приложения. Кроме того, вы можете использовать grails war, чтобы объединить ваше приложение в военный архив, который должны быть в состоянии использовать все серверы приложений Java.

Если вы действительно хотите остановить grails run-app без Ctrl + C , напишите небольшой контроллер, который вызывает System.exit(0). Затем перейдите по этому URL или напишите небольшой сценарий оболочки или пакетный файл, который вызывает его, например, с помощью wget или curl.

7 голосов
/ 10 января 2014

Откройте новое окно командной строки, перейдите в каталог проекта и введите:

grails stop-app

Это остановит приложение, если оно работает в раздвоенном режиме.Затем вы можете перейти по тому же URL-адресу и увидеть, что страница не будет отображаться, т. Е. Сервер был остановлен, так как он будет указан также при выполнении команды.

-

grails exit

Это остановит приложение, если оно работает в не раздвоенном режиме, в противном случае оно выйдет из консоли

-

grails quit

Выход из консоли.

6 голосов
/ 23 декабря 2013

в Grails 2.3.3, запуск 'grails dev run-app' в командной строке оставляет командное окно в некотором подвешенном состоянии.Он не возвращает вам командную строку, Ctrl-C ничего не делает, и вам приходится возвращаться к уничтожению процессов вручную.

Намного приятнее следовать предполагаемому использованию, как показано ниже:

  1. В командной строке введите команду ' grails ' и нажмите Enter (обратите внимание, что параметры не указаны).Это запускает сам Grails (и только Grails, то есть он не запускает ваш сервер или приложение).Это приводит к одному новому процессу Java.Он также возвращает вам приглашение grails, так что вы все еще контролируете его.

1.1 В приглашении grails вы можете запустить свой сервер (и приложение), набрав ' run-app».Это запустит ваш сервер (в режиме разработки) и снова вернет вам приглашение grails.Когда ваш сервер работает, у вас теперь запущены два процесса Java, один для Grails, а другой для вашего сервера и приложения.

1.2 Если вы хотите остановить свой сервер (и приложение), вы можете, наВ командной строке grails введите « stop-app », что остановит сервер и приложение.Кроме того, вы получите свой Грааль обратно.После остановки вашего сервера / приложения вы вернетесь к запуску только одного процесса Java, то есть grails.

1.3 По приглашению grails вы можете запускать и останавливать свое приложение столько раз, сколько захотите.

1.4 Чтобы остановить сам Grails, в приглашении Grails вы можете ввести ' exit ' или ' quit ', и затем Grails завершит работу и оставит вас обратно собычная командная строка.На этом этапе Java-процесс Grails также должен быть завершен, поэтому не должно быть запущенных Java-процессов.

Я полагаю, что все Grails 2.3.x ведут себя так.У меня система windows 7.

Надеюсь, это поможет.Noel

3 голосов
/ 01 августа 2012

В Grails 2.1.0 простой «выход» останавливает сервер

1 голос
/ 07 мая 2012

Я нашел изящный способ, который работает на Grails 2.0.1 для меня.

Этот хак использует хак, вставленный в GrailsRun.groovy для выключения серверов после выполнения функциональных тестов. (см. строку 246)

Создать файл в приложении на основе имени .kill-run-app

Когда Grails видит файл .kill-run-app, он выдает grailsServer.stop (). Это также удобно удаляет файл. Это может зависеть от наличия авторекомпиляции. Я не уверен, как я уже сказал, что это взлом.

Однажды он, скорее всего, перестанет работать при изменении скрипта GrailsRun.groovy.

Я создал простую цель Ant для этого. Конечно, вам понадобится другой терминал для его выполнения (на самом деле я запускаю его из Eclipse).

<target name="kill-app" description="--> Kills Grails web application" depends="">
  <touch file="${basedir}/.kill-run-app"/>
</target>
0 голосов
/ 27 февраля 2017

У меня была такая же проблема, чтобы остановить мой работающий сервер Grails.Я сделал

  1. PS AUX |grep grails -> который дал мне PID
  2. kill -9 PID

Таким образом, я смог остановить свой работающий сервер.Надеюсь, это поможет.

0 голосов
/ 04 октября 2013

Я новичок в Grails, и у меня тоже была эта "проблема".Я написал небольшой скрипт (называемый грилем ;-)), который убивает все процессы grails.

#!/bin/bash
for P in $(ps aux | grep grails | grep java | awk '{print $2};'); do
kill -9 $P
done
exit 0
0 голосов
/ 09 марта 2012

Быстрый способ убить процесс Java:

ps -aux | grep grails

kill "идентификатор процесса сверху, который является контейнером для вашего приложения"

...