Как использовать команду для выключения grails run-app

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

Ответы

Ответ 1

Нет. 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-адресу или напишите небольшую оболочку script или командный файл, который вызывает его, например. wget или curl.

Ответ 2

Для сервера останова:

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

  • Grails exit
  • grails stop-app
  • grails quit

Ответ 3

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

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

  • В командной строке введите команду "grails" и нажмите "Return" (обратите внимание, что параметры не указаны). Это начинает сам grails (и только grails, т.е. Не запускает ваш сервер или приложение). Это приводит к одному новому процессу Java. Он также возвращает вам подсказки Grails, поэтому вы все еще контролируете.

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

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

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

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

Я считаю, что все грабли 2.3.x ведут себя так. Моя система - это окна 7.

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

Ответ 4

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

grails stop-app

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

-

Выход Грайля

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

-

grails quit

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

Ответ 5

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

Ответ 6

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

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

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

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

В один прекрасный день он, скорее всего, перестанет работать, когда будет изменен GrailsRun.groovy script.

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

<target name="kill-app" description="--> Kills Grails web application" depends="">
  <touch file="${basedir}/.kill-run-app"/>
</target>

Ответ 7

Быстрый способ - уничтожить java-процесс:

ps -aux | grep grails

убить "прокси-код выше, который является контейнером для вашего приложения"

Ответ 8

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

#!/bin/bash
for P in $(ps aux | grep grails | grep java | awk '{print $2};'); do
kill -9 $P
done
exit 0

Ответ 9

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

  • ps aux | grep grails → , который дал мне PID
  • kill -9 PID

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