Как использовать команду для выключения 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
Таким образом, я смог остановить свой текущий сервер. Надеюсь, что это поможет.