У меня проблема с node.js, на котором запущен небольшой веб-сервер, обслуживающий файлы из файловой системы. При запуске с node server.js
он работает как шарм, но при запуске с nohup или forever node.js не может найти файлы.
Ошибка: EBADF, неверный файловый дескриптор при запуске узла с использованием nohup of forever
Ответы (3)
Это работает для меня:
nohup node server.js </dev/null
person
forzagreen
schedule
01.08.2016
Понятия не имею, почему, но это работает.
< /dev/null
отключает ручной ввод команды nohup, но как это связано с путем к файлу, я не знаю. Я лично использовал супервизора, а не вечно, но ошибка была той же. Я добавлю, что в этом не было необходимости, пока обновление в супервизоре не заставило его слушать ручной ввод.
- person Louis Ameline; 02.05.2017
Другое решение - запустить команду в подоболочке с использованием круглых скобок. (nohup node index.js)
person
Jk Jensen
schedule
12.08.2016
Оказалось, что это путь к файлу, в котором возникла проблема. При запуске сервера с использованием узла рабочий каталог совпадает с файлом server.js, поэтому node.js удается найти файл.
При запуске с использованием nohup или просто при запуске с вечностью рабочий каталог, похоже, не такой же, как server.js.
Я решил это, добавив к имени файла глобальную переменную __dirname
.
person
javabeangrinder
schedule
17.05.2013
Не могли бы вы поделиться полной командой после добавления глобальной переменной __dirname
- person Monti Chandra; 26.07.2018
Вы можете поделиться дополнительной информацией? Я также испытываю это в Windows
- person Xin; 26.11.2019
@Xin Я использовал __dirname в коде сервера для получения файлов. Не при запуске сервера навсегда.
- person javabeangrinder; 02.12.2019