Jak uruchomić węzeł.aplikacja js jako usługa w tle?

Ponieważ ten post zyskał wiele uwagi przez lata, wymieniłem najlepsze rozwiązania na platformę na dole tego postu.


Oryginalny post :

Chcę swój węzeł.js server do uruchomienia w tle, tzn.: kiedy zamykam terminal chcę, aby mój serwer działał dalej. Wygooglowałem to i wymyśliłem ten tutorial , jednak nie działa zgodnie z przeznaczeniem. Więc zamiast używać tego skryptu demona, myślałem, że po prostu użyłem przekierowania wyjścia (the 2>&1 >> file part), ale to też nie kończy się-dostaję pustą linię w moim terminalu, jakby czekała na wyjście / błędy.

Próbowałem również umieścić proces w tle, ale jak tylko zamknę mój terminal, proces również jest zabijany.

Więc jak mogę pozostawić to uruchomione, gdy wyłączę mój komputer lokalny?


Top solutions :

Author: mikemaccana, 2010-10-25

24 answers

Kopiowanie własnej odpowiedzi z Jak uruchomić węzeł.aplikacja js jako własny proces?

2015 odpowiedź: prawie każda dystrybucja Linuksa jest wyposażona w systemd, co oznacza, że forever, monit, itp. nie są już potrzebne-Twój OS już obsługuje te zadania.

Utwórz plik myapp.service (Oczywiście zastępując 'myapp' nazwą Twojej aplikacji):

[Unit]
Description=My app

[Service]
ExecStart=/var/www/myapp/app.js
Restart=always
User=nobody
# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'
Group=nogroup
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp

[Install]
WantedBy=multi-user.target

Uwaga Jeśli jesteś nowy w Unix: /var/www/myapp/app.js powinien mieć #!/usr/bin/env node na pierwszej linii.

Kopia Twój plik serwisowy do /etc/systemd/system.

Zacznij od systemctl start myapp.

Umożliwia uruchamianie przy starcie z systemctl enable myapp.

Zobacz logi z journalctl -u myapp

To jest wzięte z Jak wdrażamy aplikacje węzłowe w systemie Linux, edycja 2018, zawiera również polecenia do generowania AWS / DigitalOcean / Azure CloudConfig do budowania serwerów Linux / node (w tym pliku .service).

 293
Author: mikemaccana,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-12 16:09:37

Możesz użyć Forever, prostego narzędzia CLI do zapewnienia, że dany skrypt węzła działa w sposób ciągły (tj.): https://www.npmjs.org/package/forever

 231
Author: muzz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-21 17:26:53

UPDATE - Jak wspomniano w jednej z poniższych odpowiedzi, PM2 ma naprawdę ładną funkcjonalność, której brakuje w forever. Rozważ użycie go.

Oryginalna Odpowiedź

Użyj nohup :

nohup node server.js &

EDIT chciałem dodać, że przyjęta odpowiedź jest naprawdę droga. Używam forever na instancjach, które muszą pozostać na nogach. Lubię robić npm install -g forever więc jest w ścieżce węzła, a potem po prostu robić forever start server.js

 191
Author: NG.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-17 11:19:19

Może to nie jest akceptowany sposób, ale robię to z screenem, zwłaszcza w trakcie rozwoju, ponieważ mogę go przywrócić i oszukać, jeśli to konieczne.

screen
node myserver.js
>>CTRL-A then hit D

Ekran odłączy się i przetrwa wylogowanie. Następnie możesz go odzyskać, wykonując screen-R. Dotknij podręcznika ekranu, aby uzyskać więcej szczegółów. Możesz nazwać ekrany i tak dalej, jeśli chcesz.

 57
Author: UltimateBrent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-25 19:42:57

2016 aktualizacja: Seria node-windows / mac / linux wykorzystuje wspólne API we wszystkich systemach operacyjnych, więc jest to absolutnie odpowiednie rozwiązanie. Jednak; node-linux generuje pliki INIT systemv. Ponieważ systemd nadal rośnie popularność, jest realnie lepszą opcją na Linuksie. PR jest mile widziany jeśli ktoś chce dodać obsługę systemd do node-linux: -)

Oryginalny Wątek:

To już dość stary wątek, ale node-windows zapewnia inny sposób aby utworzyć usługi w tle w systemie Windows. Jest luźno oparty na koncepcji nssm używania owijki exe wokół skryptu węzła. Jednak; zamiast tego używa winsw.exe i zapewnia konfigurowalną owijarkę węzłów dla bardziej szczegółowej kontroli nad tym, jak proces rozpoczyna/zatrzymuje się na awariach. Procesy te są dostępne jak każda inna usługa:

Tutaj wpisz opis obrazka

Moduł również piecze w logowaniu zdarzeń:

Tutaj wpisz opis obrazka

Demonizacja skryptu odbywa się za pomocą kodu. Na przykład:

var Service = require('node-windows').Service;

// Create a new service object
var svc = new Service({
  name:'Hello World',
  description: 'The nodejs.org example web server.',
  script: 'C:\\path\\to\\my\\node\\script.js'
});

// Listen for the "install" event, which indicates the
// process is available as a service.
svc.on('install',function(){
  svc.start();
});

// Listen for the "start" event and let us know when the
// process has actually started working.
svc.on('start',function(){
  console.log(svc.name+' started!\nVisit http://127.0.0.1:3000 to see it in action.');
});

// Install the script as a service.
svc.install();

Moduł obsługuje takie rzeczy jak ograniczanie restartów (aby złe skrypty nie obciążały serwera) i zwiększanie odstępów czasowych między restartami.

Ponieważ usługi node-windows działają jak każde inne, możliwe jest zarządzanie / monitorowanie usługi za pomocą dowolnego oprogramowania, którego już używasz.

Wreszcie, nie ma make zależności. Innymi słowy, prosty npm install -g node-windows zadziała. Nie potrzebujesz Visual Studio,. NET lub node-gyp magic, aby to zainstalować. Poza tym to MIT i Na licencji BSD.

Szczerze mówiąc, jestem autorem tego modułu. Został zaprojektowany, aby złagodzić dokładny ból, jakiego doświadczył OP, ale dzięki ściślejszej integracji z funkcjonalnością systemu operacyjnego. Mam nadzieję, że przyszli widzowie z tym samym pytaniem uznają to za przydatne.
 55
Author: Corey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-12 16:49:04

UPDATE : zaktualizowałem, aby uwzględnić najnowsze z pm2:

W wielu przypadkach użycie usługi systemd jest najprostszym i najbardziej odpowiednim sposobem zarządzania procesem węzła. dla tych, którzy uruchamiają wiele procesów węzłowych lub niezależnie działające mikroserwisy węzłów w jednym środowisku, pm2 jest bardziej funkcjonalnym narzędziem.

Https://github.com/unitech/pm2

Http://pm2.io

    [[18]}ma naprawdę przydatną funkcję monitorowania -> ładny ' gui ' do monitorowania wielu procesów z linii poleceń za pomocą pm2 monit lub listy procesów za pomocą pm2 list
  • zorganizowane Zarządzanie logami - > pm2 logs
  • inne rzeczy:
    • Konfiguracja zachowania
    • obsługa map źródłowych
    • Kompatybilny Z PaaS
    • Watch & Reload
    • Moduł System
    • Max memory reload
    • Tryb Klastra
    • Hot reload
    • Workflow rozwoju
    • Skrypty Startowe
    • Automatyczne uzupełnianie
    • Workflow wdrożenia
    • Keymetrics monitoring
    • API
 25
Author: Hutch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-16 16:24:11

Jeśli używasz OSX, to najprostszym sposobem wytworzenia prawdziwego procesu systemowego jest użycie launchd do jego uruchomienia.

Zbuduj plist w ten sposób i umieść go w /Library/LaunchDaemons o nazwie top-level-domain.your-domain.application.plist (Musisz być root podczas umieszczania go):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>top-level-domain.your-domain.application</string>

    <key>WorkingDirectory</key>
    <string>/your/preferred/workingdirectory</string>

    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>your-script-file</string>
    </array>

    <key>RunAtLoad</key>
    <true/>

    <key>KeepAlive</key>
    <true/>

</dict>
</plist>

Kiedy skończysz, wydaj to (jako root):

launchctl load /Library/LaunchDaemons/top-level-domain.your-domain.application.plist
launchctl start top-level-domain.your-domain.application
A Ty uciekasz.

I nadal będziesz działać po ponownym uruchomieniu.

Inne opcje w pliście można znaleźć na stronie man tutaj: https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man5/launchd.plist.5.html

 16
Author: Lars Christensen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-23 15:07:34

Używam po prostu modułu daemon npm:

var daemon = require('daemon');

daemon.daemonize({
    stdout: './log.log'
  , stderr: './log.error.log'
  }
, './node.pid'
, function (err, pid) {
  if (err) {
    console.log('Error starting daemon: \n', err);
    return process.exit(-1);
  }
  console.log('Daemonized successfully with pid: ' + pid);

  // Your Application Code goes here
});

Ostatnio używam również mon(1) z TJ Holowaychuk do uruchamiania i zarządzania prostymi aplikacjami węzłów.

 13
Author: LoG,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-24 14:21:00

Używam Supervisor do rozwoju. To po prostu działa. Kiedy kiedykolwiek wprowadzić zmiany do .js file Supervisor automatycznie uruchamia aplikację ponownie po załadowaniu tych zmian.

Oto link do strony Github

Install:

Sudo npm install supervisor-g

Możesz łatwo zmusić go do oglądania innych rozszerzeń za pomocą-e. innym poleceniem, którego często używam, jest-i do ignorowania pewnych folderów.

Możesz użyć nohup i supervisor, aby uruchomić aplikację node tło nawet po wylogowaniu.

Sudo nohup supervisor myapp.js &

 12
Author: Donald Gary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-05 16:22:18

Jeśli chcesz po prostu uruchamiać skrypt nieprzerwanie, aż do jego zakończenia, możesz użyć nohop, Jak już wspomniano w odpowiedziach tutaj. Jednak żadna z odpowiedzi nie dostarcza pełnego polecenia, które również rejestruje stdin i stdout.

nohup node index.js >> app.log 2>&1 &
  • >> oznacza dołączenie do app.log.
  • 2>&1 upewnia się, że błędy są również wysyłane do stdout i dodawane do app.log.
  • zakończenie & upewnia się, że bieżący terminal jest odłączony od polecenia, więc możesz kontynuować pracę.

Jeśli chcesz uruchomić serwer węzła (lub coś, co powinno się uruchomić z powrotem po ponownym uruchomieniu serwera) powinieneś użyć systemd / systemctl.

 10
Author: Xeoncross,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-13 15:05:26

Węzeł.js jako usługa w tle w WINDOWS XP

Instalacja:

  1. Install WGET http://gnuwin32.sourceforge.net/packages/wget.htm poprzez plik wykonywalny instalatora
  2. Install GIT http://code.google.com/p/msysgit/downloads/list poprzez plik wykonywalny instalatora
  3. zainstaluj NSSM http://nssm.cc/download/?page=download poprzez kopiowanie nnsm.exe do folderu %windir% / system32
  4. Utwórz c:\node\helloworld.js

    // http://howtonode.org/hello-node
    var http = require('http');
    var server = http.createServer(function (request, response) {
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.end("Hello World\n");
    });
    server.listen(8000);
    console.log("Server running at http://127.0.0.1:8000/");
    
  5. Otwórz konsolę poleceń i wpisz następujące (setx tylko wtedy, gdy Resource Kit jest zainstalowane)

    C:\node> set path=%PATH%;%CD%
    C:\node> setx path "%PATH%"
    C:\node> set NODE_PATH="C:\Program Files\nodejs\node_modules"
    C:\node> git config --system http.sslcainfo /bin/curl-ca-bundle.crt    
    C:\node> git clone --recursive git://github.com/isaacs/npm.git    
    C:\node> cd npm    
    C:\node\npm> node cli.js install npm -gf   
    C:\node> cd ..    
    C:\node> nssm.exe install node-helloworld "C:\Program Files\nodejs\node.exe" c:\node\helloworld.js    
    C:\node> net start node-helloworld
    
  6. Sprytna partia goodie jest do tworzenia c:\node\ServiceMe.cmd

    @echo off
    nssm.exe install node-%~n1 "C:\Program Files\nodejs\node.exe" %~s1
    net start node-%~n1
    pause
    

Zarządzanie Serwisem:

  • same usługi są teraz dostępne przez Start - > Run -> usługi.msc lub poprzez Start - > Run - > MSCONFIG - > Services (i zaznacz "Ukryj Wszystkie Usługi Microsoft").
  • skrypt będzie poprzedzał każdy węzeł wykonany za pomocą skryptu wsadowego "węzeł -".
  • Podobnie można je znaleźć w rejestrze: "HKLM \ SYSTEM \ CurrentControlSet\Services\node-xxxx "
 7
Author: Page2PagePro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-18 21:44:51

Przyjęta odpowiedź jest prawdopodobnie najlepszą odpowiedzią na produkcję, ale dla szybkiego włamania wykonującego prace deweloperskie, znalazłem to:

nodejs scriptname.js & nie zadziałało, ponieważ NodeJS wydawał się pożerać&, więc to coś nie pozwalało mi używać terminala bez nazwy skryptu.js umiera.

Ale włożyłem nodejs scriptname.js do pliku. sh i Zadziałało.

Zdecydowanie nie chodzi o produkcję, ale rozwiązuje problem "muszę nadal używać mojego terminala i nie chcę uruchamiać 5 różnych terminali".

 6
Author: ArtHare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-22 14:28:28

Jeśli używasz nodejs na serwerze linux, myślę, że jest to najlepszy sposób.

Utwórz skrypt usługi i skopiuj do /etc/init/nodejs.conf

Start service: sudo service NodeJS start

Stop service: sudo service NodeJS stop

Sevice script

description "DManager node.js server - Last Update: 2012-08-06"
author      "Pedro Muniz - [email protected]"

env USER="nodejs" #you have to create this user 
env APPNAME="nodejs" #you can change the service name
env WORKDIR="/home/<project-home-dir>" #set your project home folder here
env COMMAND="/usr/bin/node <server name>" #app.js ?

# used to be: start on startup
# until we found some mounts weren't ready yet while booting:
start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

pre-start script
    sudo -u $USER echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/$APPNAME.log
end script

script
    # Not sure why $HOME is needed, but we found that it is:
    export HOME="<project-home-dir>"  #set your project home folder here
    export NODE_PATH="<project node_path>"

    #log file, grant permission to nodejs user
    exec start-stop-daemon --start --make-pidfile --pidfile /var/run/$APPNAME.pid --chuid $USER --chdir $WORKDIR --exec $COMMAND >> /var/log/$APPNAME.log 2>&1
end script

post-start script
   # Optionally put a script here that will notifiy you node has (re)started
   # /root/bin/hoptoad.sh "node.js has started!"
end script

pre-stop script
    sudo -u $USER echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/$APPNAME.log
end script
 4
Author: Pedro Muniz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-03 12:46:42

Spróbuj uruchomić to polecenie, jeśli używasz nohup -

nohup npm start 2>/dev/null 1>/dev/null&

Możesz również użyć forever do uruchomienia serwera

forever start -c "npm start" ./ 
 4
Author: Himanshu Teotia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-31 07:31:56

Użyj nssm najlepsze rozwiązanie dla windows, po prostu pobierz nssm , Otwórz cmd do katalogu nssm i wpisz

nssm install <service name> <node path> <app.js path> 

eg: nssm install myservice "C:\Program Files\nodejs" "C:\myapp\app.js" 

Spowoduje to zainstalowanie nowej usługi windows, która będzie wyświetlana w services.msc stamtąd możesz uruchomić lub zatrzymać usługę, ta usługa uruchomi się automatycznie i możesz skonfigurować, aby ponownie uruchomić, jeśli się nie powiedzie.

 3
Author: Aun Rizvi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-21 12:20:03

Aby dopełnić różne sugerowane opcje, Oto jeszcze jedno: polecenie daemon W GNU / Linuksie, o którym możecie przeczytać tutaj: http://libslack.org/daemon/manpages/daemon.1.html . (przepraszam, jeśli jest to już wspomniane w jednym z komentarzy powyżej).

 2
Author: ravi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-04 04:16:08

Czerwiec 2017 Aktualizacja:
Rozwiązanie dla Linuksa: (Red hat). Poprzednie komentarze mi nie działają. To działa dla mnie na Amazon Web Service-Red Hat 7. Mam nadzieję, że komuś się uda.

A. Create the service file 
sudo vi /etc/systemd/system/myapp.service
[Unit]
Description=Your app
After=network.target

[Service]
ExecStart=/home/ec2-user/meantodos/start.sh
WorkingDirectory=/home/ec2-user/meantodos/

[Install]
WantedBy=multi-user.target

B. Create a shell file
/home/ec2-root/meantodos/start.sh
#!/bin/sh -
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
npm start

then:
chmod +rx /home/ec2-root/meantodos/start.sh
(to make this file executable)

C. Execute the Following

sudo systemctl daemon-reload
sudo systemctl start myapp
sudo systemctl status myapp

(If there are no errors, execute below.  Autorun after server restarted.)
chkconfig myapp -add
 2
Author: Eman Jayme,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-27 10:40:30

Zobacz fuga! Oprócz uruchomienia wielu pracowników, Możesz również demonizować proces węzła!

Http://github.com/pgte/fugue

 1
Author: Shripad Krishna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-26 05:10:05

Czy ktoś zauważył trywialny błąd pozycji "2 > &1"?

2>&1 >> file

Powinno być

>> file 2>&1
 1
Author: osexp2003,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-20 13:49:56

Używam tmux dla środowiska programistycznego wielu okien / okienek na zdalnych hostach. To naprawdę proste, aby odłączyć i utrzymać proces działa w tle. Zobacz tmux

 1
Author: Karl Pokus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-07 08:52:17

Ta odpowiedź jest dość późno dla strony, ale odkryłem, że najlepszym rozwiązaniem było napisanie skryptu powłoki, który używał zarówno screen -dmS, jak i nohup.

screen -dmS newScreenName nohup node myserver.js >> logfile.log

Dodaję również bit >> logfile na końcu, dzięki czemu mogę łatwo zapisać instrukcje node console.log().

Dlaczego użyłem skryptu powłoki? Cóż, dodałem również do instrukcji if, która sprawdzała, czy proces {[5] } był już uruchomiony.

W ten sposób udało mi się stworzyć jedną opcję wiersza poleceń, która pozwala mi zachować serwer będzie, a także uruchom go ponownie, gdy dokonałem zmian, co jest bardzo pomocne dla rozwoju.

 0
Author: Anwar Hahj Jefferson-George,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-19 15:00:29

PM2 jest menedżerem procesu produkcyjnego dla węzła.aplikacje js z wbudowanym load balancer. Pozwala utrzymać aplikacje przy życiu na zawsze, przeładowywać je bez przestojów i ułatwiać typowe zadania administratora systemu. https://github.com/Unitech/pm2

 0
Author: Arezki Lebdiri,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-09 19:15:45

Dziwię się, że nikt nie wspomniał o

Próbowałem forever, pm2 itp. Ale jeśli chodzi o solidną kontrolę i internetowe wskaźniki wydajności, uznałem Guvnor za zdecydowanie najlepszy. Plus, jest również w pełni opensource.

Tutaj wpisz opis obrazka

Edit: jednak nie jestem pewien, czy to działa na windows. Używałem go tylko na Linuksie.

 0
Author: Josh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-24 15:23:24

To bardzo proste.

  1. Dodaj pakiet.json w Twoim projekcie
  2. Dodaj nazwę pliku skryptu lub ścieżkę do pakietu.JSON Start
  3. Następnie po prostu przejdź do konsoli otwórz katalog projektu za pomocą ścieżki cd/do / katalogu /
  4. napisz nohup npm start

Poniżej znajduje się Pakiet.JSON próbka, której każdy może użyć. { "nazwa": "projekt",

  "version": "1.0.0",

  "main": "httpsserver.js",

  "scripts": {

    "start": "node httpsserver.js"
  },

  "keywords": [],

  "author": "",

  "license": "ISC",

  "dependencies": {},

  "devDependencies": {},

  "description": ""

}
 -1
Author: Mishi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-17 11:01:18