2014-07-10 11 views
8

2 skrypty nodejs są obsługiwane przez forever. System korzysta zawsze v0.11.1 i węzeł v0.10.29Node.js Forever nie tworzy plików dziennika

# 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 

Pytanie: Dlaczego są pliki dziennika utworzone przez forever brakuje? Ponowne uruchomienie 2 procesów nadal nie tworzy żadnych plików dziennika ...

Katalog /root/.forever nie wyświetla również plików dziennika!

# 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 
+1

Jakiego polecenia używasz do uruchamiania na zawsze? A jakiego używasz systemu operacyjnego? – ctlacko

Odpowiedz

3

Jeśli rozpocząć proces węzła z forever your_script.js i nie określić plik dziennika, forever będą pisać swoje logi do terminala (lub cmd na Windows). Plik dziennika wyświetlany po uruchomieniu forever list lub forever logs nie odzwierciedla rzeczywistości, ponieważ nie został utworzony w tym scenariuszu. Ale jeśli podasz pliki dziennika, po opcjach:

-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 

, jak forever -l console.log -e error.log your_script.log, będą one tworzone.

Jeśli chcesz, aby forever automatycznie utworzył dla ciebie plik dziennika, musisz uruchomić swój skrypt jako demon, z forever start your_script.js. W takim przypadku możesz również określić swoje pliki dziennika.

Na stronie docs widać wszystkie opcje wiersza poleceń.

+1

'forever start bin/www -e logs/error.log -l logs/logs.log' nie tworzy żadnych plików .. jakiś pomysł co jest nie tak? – Shreejibawa

4

Aby odpowiedzieć Shreejibawa (ponieważ nie mogę jeszcze skomentować) ...

zawsze jest bardzo wrażliwy na kolejność argumentów. Zapoznaj się z ich dokumentacją i zauważ, że opcje muszą pojawić się przed skryptem.

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

Zamiast: forever start bin/www -e logs/error.log -l logs/logs.log

Spróbuj:

0

Miałem ten sam problem w OSX. W systemie OSX (co najmniej) polecenie forever app.js rozpoczyna na zawsze proces na pierwszym planie i nie zapisuje dziennika do pliku, nawet jeśli podano -l i -e. W tym przypadku forever list wyświetla listę plików, mimo że ich nie ma, a forever logs i tworzy error: undefined.

Gdy zawsze DAEMON jest uruchamiany za pomocą forever start app.js, pliki dziennika są wyświetlane i mogą być przeglądane za pomocą forever logs i.

Powiązane problemy