Node.js Forever не создает файлы журнала

2 скрипта nodejs обрабатываются forever. Система использует навсегда v0.11.1 и узел v0.10.29.

# forever list
info:    Forever processes running
data:        uid  command  script      forever pid   logfile                 uptime        
data:    [0] D34J userdown app/main.js 7441    10950 /root/.forever/D34J.log 0:2:31:45.572 
data:    [1] P0BX userdown app/main.js 11242   11261 /root/.forever/P0BX.log 0:2:20:22.157 
# forever logs 0
error:   undefined
# forever logs 1
error:   undefined

Вопрос. Почему файлы журналов, созданные forever, отсутствуют? Перезапуск 2 процессов по-прежнему не создает файлы журнала...

Каталог /root/.forever тоже не показывает лог-файлы!

# ls -la /root/.forever
total 20
drwxr-xr-x 4 root root 4096 Jul  4 11:37 .
drwx------ 8 root root 4096 Jul 10 13:24 ..
-rw-r--r-- 1 root root  259 Jul 10 19:34 config.json
drwxr-xr-x 2 root root 4096 Jul  4 11:37 pids
drwxr-xr-x 2 root root 4096 Jul 10 17:12 sock

person Nyxynyx    schedule 10.07.2014    source источник
comment
Какую команду вы используете для запуска навсегда? А какую операционную систему вы используете?   -  person ctlacko    schedule 11.07.2014


Ответы (3)


Если вы запустите процесс узла с помощью forever your_script.js и не укажете файл журнала, forever запишет ваши журналы в терминал (или cmd в Windows). Файл журнала, отображаемый при запуске forever list или forever logs, не соответствует действительности, поскольку он не создается в этом сценарии. Но если вы укажете лог-файлы, следуя параметрам:

-l  LOGFILE      Logs the forever output to LOGFILE
-o  OUTFILE      Logs stdout from child script to OUTFILE
-e  ERRFILE      Logs stderr from child script to ERRFILE

, как и forever -l console.log -e error.log your_script.log, они будут созданы.

Если вы хотите, чтобы forever автоматически создавал для вас файл журнала, вы должны запустить свой скрипт как демон с forever start your_script.js. В этом случае вы также можете указать свои файлы журналов.

На странице документы вы можете увидеть всю командную строку опции.

person Rodrigo Medeiros    schedule 11.07.2014
comment
forever start bin/www -e logs/error.log -l logs/logs.log не создает никаких файлов... есть идеи, что не так? - person Shreejibawa; 07.11.2016

Чтобы ответить Шриджибаве (поскольку я еще не могу комментировать)...

forever очень чувствителен к порядку аргументов. Взгляните на их документацию и обратите внимание, что параметры должны стоять перед сценарием.

forever [action] [options] SCRIPT [script-options]

Вместо: forever start bin/www -e logs/error.log -l logs/logs.log

Попробуйте: forever start -e /path/to/logs/error.log -l /path/to/logs/logs.log your_script.js

person Tony Rossi    schedule 04.01.2017

У меня была такая же проблема в OSX. В OSX (по крайней мере) команда forever app.js запускает постоянный процесс на переднем плане и не записывает журнал в файл, даже если указаны -l и -e. В этом случае forever list показывает файл, даже если его там нет, а forever logs i выдает error: undefined.

Когда вечный DAEMON запускается с помощью forever start app.js, файлы журнала появляются и могут быть просмотрены с помощью forever logs i.

person Pum Walters    schedule 20.02.2017