Я получаю эту ошибку при попытке решить "Server failed to start for port 8080: Address already in use
"
Error executing script 8888: For input string: ""
Может ли кто-нибудь помочь? Не знаю, что случилось. Спасибо.
Я получаю эту ошибку при попытке решить "Server failed to start for port 8080: Address already in use
"
Error executing script 8888: For input string: ""
Может ли кто-нибудь помочь? Не знаю, что случилось. Спасибо.
Когда номер порта 8080 уже используется и вы хотите повторно использовать тот же порт, вы должны убить его процесс:
Сначала проверьте pid процесса, который использует порт 8080. Для этого выполните:
lsof -w -n -i tcp:8080
В приведенном выше примере pid составляет 3812 для процесса, который использует порт 9090
Обратите внимание на PID. PID может отличаться на вашей машине. Нам нужно это для выполнения следующей команды:
поэтому вам придется протестировать его с помощью run-app:
grails run-app
ОБНОВЛЕНИЕ:
Поскольку вывод lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'
является PID
, Вы можете автоматически уничтожить процесс порта PID:
kill -9 `lsof -w -n -i tcp:8080| awk '{print $2}'|awk 'END{print}'`
Если вы используете Grails/Groovy Tool Suite (Eclipse based IDE), выберите Запустить как > Запустить конфигурации.... Затем на вкладке Grails введите так:
-Dserver.port=8050 run-app
Итак, Grails будет работать на порту 8050 вместо порта по умолчанию (8080).
Сообщение
Серверу не удалось запустить порт 8080: адрес уже используется
указывает, что какой-то другой процесс на вашем компьютере уже привязал себя к порту 8080. Я бы предположил, что это экземпляр Tomcat, запущенный либо из-за того, что вы его запустили, либо из-за того, что вы используете. p >
В любом случае этот вопрос должен помочь вам завершить процесс, использующий порт.
Что касается второй ошибки в отношении script 8888, я понятия не имею. Grails не пытается запустить этот script в моей среде, поэтому я предполагаю, что он связан с плагином, который вы установили.
Проблема заключается в том, что номер порта 8080 уже используется. Таким образом, вам либо нужно остановить этот процесс, чтобы освободить место для нового, либо указать grails -Dserver.port=8090 run-app
при запуске приложения.
Однако, поскольку у вас есть ошибка script, возможно, вы не указали порт в свой BuildConfig.groovy.
здесь решение:
добавьте grails.server.port.http=8888
в BuildConfig.groovy
см. комментарий здесь: http://www.icodeya.com/2012/06/grails-resolving-server-failed-to-start.html
Если вы используете STS или Eclipse (или, возможно, любую среду, построенную на Eclipse), один из вариантов - перейти в перспективу отладки (Окно → Открыть перспектива → Отладка). Оттуда вы можете щелкнуть правой кнопкой мыши на своем рабочем сервере и нажать Завершить и перезапустить. Это убьет текущий сервер и перезапустится на том же порту, чтобы вы не получили сообщение Server failed to start for port 8080: Address already in use
.
Что касается Error executing script 8888: For input string: ""
, я не видел его раньше, но кажется, что @ShootingStar имеет ответ.
Когда номер порта 8080 уже используется и вы хотите повторно использовать тот же порт, вы должны убить его процесс:
Используйте fuser 8080/tcp
, чтобы напечатать вам PID процесса, связанного с этим портом.
И этот fuser -k 8080/tcp
убьет этот процесс.
Woks только для Linux. Более универсальным является использование lsof -i4
(или 6 для IPv6).
ПРИМЕР: если порт равен 8080, запустите на терминале:
fuser -k -n tcp 8080
Вот и все!
КАК УБИТЬ ДЕНЕЖНЫЙ ПОРТ
откройте командную строку и введите C: > netstat -a -n -o | найти "8080" найти PID примера порта TCP 0.0.0.0:8888 0.0.0.0:09 ПРОСЛУШИВАНИЕ 9068
Далее
C: > taskkill/PID 9068/F УСПЕХ: Процесс с PID 9068 завершен.
Легче других опубликованных ответов.
В окне консоли есть значок X и XX. Когда вы наводите курсор на него. Вы увидите воздушные шары, показывающие "Удалить запуск" и "Удалить все завершенные запуска".
Нажмите на них обоих. Eclipse очистит все существующие серверы, чтобы вы могли перезапустить сервер на своем порту по умолчанию.
Вам нужно убить процесс, который выполняется на порту 8080; Поэтому используйте команду:
netstat -plten |grep java
используется grep java, поскольку tomcat использует java как свои процессы.
Он покажет список процессов с номером порта и идентификатором процесса
tcp6 0 0 :::8080 :::* LISTEN
1000 30070621 16085/java
число перед /java является идентификатором процесса. Теперь используйте команду kill, чтобы убить процесс
kill -9 16085
-9 подразумевает, что процесс будет убит принудительно.
Это означает, что существует служба, использующая порт 8080. Вы можете ввести на терминале команду "netstat", чтобы проверить это.
Как остановить сервис, использующий этот порт? В Windows вы можете остановить такой сервис с помощью этих шагов:
Если он не работает как служба, вам может потребоваться использовать диспетчер задач, чтобы принудительно остановить его.