Сообщение Grunt: Неустранимая ошибка: порт 35729 уже используется другим процессом

Грант работал. Но после перемещения файлов моего сайта на один каталог вверх, чтобы сидеть в корне, grunt перестал работать:

Фатальная ошибка: порт 35729 уже используется другим процессом.

Будет ли путь иметь значение в этом случае? Глядя на порт 35729, я обнаружил, что Grunt был единственным процессом, запущенным на этом порту. Я убил этот процесс, убедился, что на 35729 не запущен ни один другой процесс, затем снова запустил grunt, но все равно получил ту же фатальную ошибку, что и раньше.

Хотя ни один из моих конфигурационных файлов не изменился для grunt с тех пор, как он работал, я решил попробовать использовать подход «npm init» для создания нового package.json, затем снова запустить «npm install» и подтвердить, что он загрузил «node_modules». Что еще я могу попробовать?

Я использую Node v0.10.33 на Mac OS 10.10.5.


person Mark Salvatore    schedule 02.09.2015    source источник
comment
Случайная мысль, но я думаю, что Sublime text использует порт 35729, если он у вас открыт, убейте его :) (или вы можете изменить его в настройках)   -  person Corbin    schedule 02.09.2015
comment
Grunt — единственный процесс на этом порту. Раньше Sublime Text всегда был открыт без конфликтов с Grunt.   -  person Mark Salvatore    schedule 02.09.2015
comment
Проверьте livereload в Sublime text: Sublime Text 2 › Preferences › Package Settings › Live Reload › Settings – User Paste in: {порт: 35730}   -  person Corbin    schedule 02.09.2015
comment
Это переопределит существующие настройки — просто попробуйте :)   -  person Corbin    schedule 02.09.2015
comment
У меня нет Live Reload в качестве пакета в Sublime Text 2, поэтому мне нечего переопределять.   -  person Mark Salvatore    schedule 02.09.2015


Ответы (5)


Не останавливайте процесс с Ctrl+C в терминале.

Ctrl+Z будет поддерживать его работу.

Найдите идентификатор процесса по sudo lsof -i :35729

Затем убейте процесс с помощью sudo kill -9 PID

Перезапустите хрюкающие часы

person Kashmiri    schedule 01.09.2016
comment
если это проблема с докером, просто закройте и снова откройте ssh sesh - person DGRFDSGN; 01.07.2019

В моем случае часы Grunt уже работали в другом проекте. Поэтому я обновил задачу просмотра Grunt соответствующим образом для перезагрузки в реальном времени, чтобы смотреть на другом порту.

 watch: {
        main: {
            options: {
                livereload: 35730,
                livereloadOnError: false,
                spawn: false
            },
            files: [createFolderGlobs(['*.js', '*.less', '*.html']), '!_SpecRunner.html', '!.grunt'],
            tasks: [] //all the tasks are run dynamically during the watch event handler
        }
    }

Указано livereload:PORT

person Venkat Kotra    schedule 03.01.2017

Проблема заключается в перезагрузке grunt-contrib-watch в реальном времени: https://github.com/gruntjs/grunt-contrib-watch/blob/v1.0.0/tasks/lib/livereload.js#L19

У вас не может быть двух хрюкающих часов с опцией livereload, установленной в true. Либо установите для одной из опций livereload значение false, либо измените порт ливерелада на что-то другое, установив для опции livereload вместо true значение, отличное от 35729, например live-reload: 1337.

Подробнее см. в документации: https://github.com/gruntjs/grunt-contrib-watch#optionslivereload

В противном случае вы можете запустить столько процессов grunt, сколько захотите.

person Nicu Surdu    schedule 23.02.2016

Проблема решена. Хотя grunt-cli устанавливается глобально, grunt устанавливается локально вместе с проектом. Поэтому, когда я переместил файлы моего сайта на один каталог выше и запустил grunt из этого нового места, я фактически запускал второй экземпляр grunt, который обнаружил, что порт, конечно же, уже занят предыдущим экземпляром grunt, запущенным до перемещения файлов.

После того, как я убил этот процесс, grunt запустился без проблем. Я не смог убить его с помощью kill -9, поэтому я использовал монитор активности Mac, чтобы выполнить «Force Quit».

person Mark Salvatore    schedule 02.09.2015

решение :

Шаг 1

Запустите командную строку от имени администратора. Затем запустите приведенную ниже команду. Введите номер порта в yourPortNumber:

netstat -ano | findstr : (yourPortNumber)

введите здесь описание изображения

Шаг 2

Затем вы выполняете эту команду после определения PID.

taskkill /PID  (typeyourPIDhere) /

Наслаждайтесь кодированием!

person RAJ    schedule 15.08.2019