亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

characters

當(dāng)您運(yùn)行用于生產(chǎn)的Express應(yīng)用程序時(shí),使用流程管理器來實(shí)現(xiàn)以下任務(wù)會(huì)很有幫助:

  • 如果崩潰,請(qǐng)自動(dòng)重新啟動(dòng)應(yīng)用程序。

  • 深入了解運(yùn)行時(shí)性能和資源消耗。

  • 動(dòng)態(tài)修改設(shè)置以提高性能。

  • 控制集群。

流程管理器有點(diǎn)像應(yīng)用程序服務(wù)器:它是便于部署的應(yīng)用程序的“容器”,提供高可用性,并使您能夠在運(yùn)行時(shí)管理應(yīng)用程序。

Express和其他Node.js應(yīng)用程序最流行的進(jìn)程管理器如下所示:

  • StrongLoop Process Manager

  • PM2

  • Forever

  • SystemD

但是,使用這四種工具中的任何一種都可能非常有用,但StrongLoop Process Manager是唯一提供全面的運(yùn)行時(shí)和部署解決方案的工具,該解決方案可解決整個(gè)Node.js應(yīng)用程序生命周期,其中包括生產(chǎn)前后每一步的工具,統(tǒng)一的界面。

這里簡(jiǎn)要介紹一下這些工具。有關(guān)詳細(xì)比較,請(qǐng)參閱http://strong-pm.io/compare/。

StrongLoop流程管理器

StrongLoop過程管理器(StrongLoop PM)是Node.js應(yīng)用程序的生產(chǎn)過程管理器。StrongLoop PM具有內(nèi)置負(fù)載平衡,監(jiān)控和多主機(jī)部署以及圖形控制臺(tái)。您可以使用StrongLoop PM進(jìn)行以下任務(wù):

  • 構(gòu)建,打包并將Node.js應(yīng)用程序部署到本地或遠(yuǎn)程系統(tǒng)。

  • 查看CPU配置文件和堆快照以優(yōu)化性能并診斷內(nèi)存泄漏。

  • 讓進(jìn)程和集群永遠(yuǎn)活著。

  • 查看應(yīng)用程序的性能指標(biāo)。

  • 使用Nginx集成輕松管理多主機(jī)部署。

  • 將多個(gè)StrongLoop PM統(tǒng)一到從Arc管理的分布式微服務(wù)運(yùn)行時(shí)。

您可以使用稱為的強(qiáng)大的命令行界面工具slc或稱為Arc的圖形工具來處理StrongLoop PM 。Arc是開源的,由StrongLoop提供專業(yè)支持。

有關(guān)更多信息,請(qǐng)參閱http://strong-pm.io/。

完整的文檔:

  • Operating Node apps (StrongLoop documentation)

  • Using StrongLoop Process Manager.

安裝

$ [sudo] npm install -g strongloop

基本使用

$ cd my-app
$ slc start

查看Process Manager和所有已部署的應(yīng)用程序的狀態(tài):

$ slc ctl
Service ID: 1Service Name: my-app
Environment variables:
  No environment variables defined
Instances:
    Version  Agent version  Cluster size     4.1.13      1.5.14           4Processes:
        ID      PID   WID  Listening Ports  Tracking objects?  CPU profiling?    
        1.1.57692  57692   0    
        1.1.57693  57693   1     0.0.0.0:3001    
        1.1.57694  57694   2     0.0.0.0:3001    
        1.1.57695  57695   3     0.0.0.0:3001    
        1.1.57696  57696   4     0.0.0.0:3001

列出所有正在管理的應(yīng)用程序(服務(wù)):

$ slc ctl ls
Id          Name         Scale 1          my-app       1

停止應(yīng)用程序:

$ slc ctl stop my-app

重新啟動(dòng)應(yīng)用程序:

$ slc ctl restart my-app

您也可以“軟重啟”,這為工作進(jìn)程提供了一個(gè)寬限期來關(guān)閉現(xiàn)有連接,然后重新啟動(dòng)當(dāng)前應(yīng)用程序:

$ slc ctl soft-restart my-app

從管理中刪除應(yīng)用程序:

$ slc ctl remove my-app

PM2

PM2是Node.js應(yīng)用程序的生產(chǎn)過程管理器,具有內(nèi)置的負(fù)載平衡器。PM2允許您永久保持應(yīng)用程序的活動(dòng)狀態(tài)并在無需停機(jī)的情況下重新加載它們,并且可以促進(jìn)常見的系統(tǒng)管理任務(wù) PM2還使您能夠管理應(yīng)用程序日志記錄,監(jiān)視和群集。

有關(guān)更多信息,請(qǐng)參閱https://github.com/Unitech/pm2。

安裝

$ [sudo] npm install pm2 -g

基本使用

當(dāng)您使用該pm2命令啟動(dòng)應(yīng)用程序時(shí),您必須指定應(yīng)用程序的路徑。但是,當(dāng)您停止,重新啟動(dòng)或刪除應(yīng)用程序時(shí),您只能指定應(yīng)用程序的名稱或ID。

$ pm2 start app.js[PM2] restartProcessId process id 0
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬──────┬
│ App name │ id │ mode │ pid    │ status     │ restart      │ uptime         │ memory    │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼──────┤
│ my-app  │ 0  │ fork │ 64029    │ online     │ 1       │ 0s         │ 17.816 MB  │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴──────┘
 Use the `pm2 show <id|name>` command to get more details about an app.

當(dāng)您使用該pm2命令啟動(dòng)應(yīng)用程序時(shí),應(yīng)用程序會(huì)立即發(fā)送到后臺(tái)。您可以使用各種pm2命令從命令行控制后臺(tái)應(yīng)用程序。

通過使用該pm2命令啟動(dòng)應(yīng)用程序后,它將通過ID在PM2的進(jìn)程列表中注冊(cè)。因此,您可以使用其ID來管理系統(tǒng)上不同目錄中具有相同名稱的應(yīng)用程序。

請(qǐng)注意,如果多個(gè)具有相同名稱的應(yīng)用程序正在運(yùn)行,pm2命令將影響所有這些應(yīng)用程序。因此,使用ID而不是名稱來管理各個(gè)應(yīng)用程序。

列出所有運(yùn)行的進(jìn)程:

$ pm2 list

停止應(yīng)用程序:

$ pm2 stop 0

重新啟動(dòng)應(yīng)用程序:

$ pm2 restart 0

要查看有關(guān)應(yīng)用程序的詳細(xì)信息

$ pm2 show 0

從PM2的注冊(cè)表中刪除應(yīng)用程序:

$ pm2 delete 0

forever

Forever是一個(gè)簡(jiǎn)單的命令行界面工具,用于確保給定腳本連續(xù)運(yùn)行(永久)。Forever的簡(jiǎn)單界面非常適合運(yùn)行較小的Node.js應(yīng)用程序和腳本部署。

有關(guān)更多信息,請(qǐng)參閱https://github.com/foreverjs/forever。

安裝

$ [sudo] npm install forever -g

基本使用

要啟動(dòng)腳本,請(qǐng)使用該forever start命令并指定腳本的路徑:

$ forever start script.js

該命令將以守護(hù)進(jìn)程模式(在后臺(tái))運(yùn)行該腳本。

要運(yùn)行該腳本以便將其附加到終端,請(qǐng)忽略start

$ forever script.js

它是從永遠(yuǎn)的工具,通過使用日志選項(xiàng)腳本日志輸出是個(gè)好主意-l-o-e,如下面的例子:

$ forever start -l forever.log -o out.log -e err.log script.js

要查看Forever啟動(dòng)的腳本列表,請(qǐng)執(zhí)行以下操作:

$ forever list

要停止由Forever啟動(dòng)的腳本,請(qǐng)使用該forever stop命令并指定進(jìn)程索引(如forever list命令所列)。

$ forever stop 1

或者,指定文件的路徑:

$ forever stop script.js

要停止Forever啟動(dòng)的所有腳本:

$ forever stopall

Forever有更多的選擇,它還提供了一個(gè)程序化的API。

SystemD

介紹

SystemD是現(xiàn)代Linux發(fā)行版的默認(rèn)進(jìn)程管理器?;赟ystemD運(yùn)行Node服務(wù)非常簡(jiǎn)單。注意:本節(jié)基于Ralph Slooten(@axllent)的博客文章。

設(shè)置服務(wù)

/etc/systemd/system/express.service以下位置創(chuàng)建文件:

[Unit]Description=Express
# Set dependencies to other services (optional)#After=mongodb.service[Service]
# Run Grunt before starting the server (optional)#ExecStartPre=/usr/bin/grunt

# Start the js-file starting the express server
ExecStart=/usr/bin/node server.js
WorkingDirectory=/usr/local/express
Restart=always
RestartSec=10StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Express
# Change to a non-root user (optional, but recommended)#User=<alternate user>#Group=<alternate group># Set environment options
Environment=NODE_ENV=production PORT=8080[Install]WantedBy=multi-user.target

啟用服務(wù)

$ systemctl enable express.service

開始服務(wù)

$ systemctl start express.service

檢查服務(wù)狀態(tài)

$ systemctl status express.service
Previous article: Next article: