2014-12-03 11 views
8

Şu an nodejs uygulamamı npm start olarak çalıştırıyorum. arka planda çalıştırmak istiyorum. Bunun için forever paketini buldum ancak genellikle npm start olarak çalıştığım bir uygulamayı nasıl çalıştırabilirim bilmiyorum. Peki forever'u kullanarak nasıl çalıştırabilirim?nodejs sonsuza dek: npm uygulamam nasıl çalıştırılır

Ben this SO izleyin ama bu hatayı almaya: Bu birbirinden

ENVIRONMENT=production forever start app.js 
warn: --minUptime not set. Defaulting to: 1000ms 
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms 
info: Forever processing file: app.js 

arka planda nodejs çalıştırmak için başka iyi bir yolu var mı?

+5

bir hata görmüyorum, sadece uyarılar ....? – Alex

cevap

13

Doğru yapıyorsunuz.

Uyarılar, bazı önemli bilgilerin eksik olduğunu size hatırlatır, bu nedenle varsayılanları atar. Tam olarak, komut dosyanız başlatıldıktan sonra saniyeden daha kısa sürede çöker/çıkarsa, sonsuza kadar da çıkacaktır. O uyarı kurtulmak istiyorsanız


:

"scripts": { 
    "start": "node app.js" 
    }, 

ve bunu değiştirmek:

forever start --minUptime 1000 --spinSleepTime 1000 app.js 
Dahası

, sen package.json dosyayı açabilirsiniz bulmak ile:

"scripts": { 
    "start": "forever start --minUptime 1000 --spinSleepTime 1000 app.js", 
    "stop": "forever stop app.js" 
    }, 

Artık npm start'u kullanabilir ve otomatik olarak forever'u çağırır.

+3

Ekspres-jeneratörü kullanan ve uygulamalarını "npm start" kullanarak başlatmaya başlayan herkes için, "uygulamasını değiştirin.js "ile " \ "pwd \'/bin/www " – zephinzer

+0

hataya neden olan" tırnak "başladıktan sonra virgül eksiktir. – ahmet

+1

@ahmet teşekkürler, değiştirildi – alandarev

0

Linux Kullanım terminali için ve süper modunda girin ve bu kodu

deneyin
$ nohup node <location of of js file> & 
$ exit 

Not: Bu '&' Girdiğiniz basmadan zorunluluktur

ya için npm komutu, sadece package.json'un saklandığı yeri cd komutuyla konumlandır. Sonra

$ nohup npm start & 
$ exit 

Not: Bu '&' Eğer

o

$ top 

Burada süreç kimliği görebilirsiniz durdurmak için enter tuşuna önce zorunluluktur, ardından kod

aşağıdaki kullanmak
$ kill -9 <PROCESS_ID>