Apakah ada cara bagi pm2 untuk menjalankan skrip start npm atau Anda hanya perlu menjalankan pm2 start app.js
Begitu juga dalam pengembangan
npm start
Kemudian dalam produksi dengan PM2 Anda akan menjalankan sesuatu seperti
pm2 start 'npm start'
Ada cara yang setara untuk melakukan ini di forever
:
forever start -c "npm start" ./
Jawaban:
PM2 sekarang mendukung start npm:
Untuk menetapkan nama ke proses PM2, gunakan
--name
opsi:sumber
--name "app"
tetapi hanya mengaturnya ke npm.npm start
file proses?Mereka yang menggunakan skrip konfigurasi seperti
.json
file untuk menjalankan proses pm2 dapat menggunakannpm start
atau skrip lain seperti ini -my-app-pm2.json
Maka sederhana -
Edit - Untuk menangani use case ketika Anda memiliki skrip konfigurasi ini di direktori induk dan ingin meluncurkan aplikasi di sub-direktori kemudian gunakan
cwd
atribut.Dengan asumsi aplikasi kita ada di dalam sub-direktori
nested-app
relatif terhadap file konfigurasi ini -Lebih detail di sini .
sumber
start
informasi skrip ada di salah satunya. Lihat intisari ini: gist.github.com/gianpaj/04c5680a8275616aac5e46374e07f673 Ketika saya menjalankan ini, ia tidak tahunpm
harus lari dari mana . Thxcwd
atribut. Periksa jawaban saya yang diedit :)sudo pm2 start config.json
Iya. Gunakan
pm2 start npm --no-automation --name {app name} -- run {script name}
. Berhasil. The--no-automation
flag ada karena tanpa itu PM2 tidak akan me-restart aplikasi Anda ketika crash.sumber
pm2 --help | grep 'no-autom'
mengembalikan satu baris untuk saya dalam versi 1.0.2Menggunakan
npm run
pm2 start npm --name "{app_name}" -- run {script_name}
sumber
Saya menulis skrip shell di bawah ini (bernama
start.sh
). Karena sayapackage.json
punyaprestart
pilihan. Jadi saya ingin larinpm start
.Kemudian, mulailah
start.sh
dengan pm2.sumber
startOrRestart
perintah.Ya kita bisa, sekarang pm2 mendukung mulai npm, --name ke nama spesies aplikasi.
sumber
Lihat untuk mengaktifkan pengelompokan:
Bagaimana menurut anda?
sumber
-i 0
dilakukan?Jika Anda menggunakan PM2 melalui modul simpul alih-alih secara global, Anda harus mengatur
interpreter: 'none'
agar solusi di atas berfungsi. Dokumen terkait di sini .Dalam
ecosystem.config.js
:sumber
Saya perlu menjalankan skrip npm khusus pada aplikasi saya di PM2 (untuk setiap env) Dalam kasus saya, itu ketika saya membuat layanan staging / tes
Perintah yang bekerja untuk saya (argumen harus diteruskan seperti itu):
contoh:
Semoga ini bisa membantu
sumber
pm2 start npm --name "custom_pm2_name" -- run prod
Ini bekerja untuk saya ketika yang lain tidak
sumber
Anda perlu memberikan nama aplikasi di sini seperti myapp
pm2 start npm --name "appName" -- start
Anda dapat memeriksanya dengan
pm2 list
Anda juga dapat menambahkan waktu
pm2 restart "id" --log-date-format 'DD-MM HH:mm:ss.SSS'
ataupm2 restart "id" --time
Anda dapat memeriksa log dengan
pm2 log "id"
ataupm2 log "appName"
untuk mendapatkan log untuk semua aplikasi
pm2 logs
sumber
Jangan lupa ruang sebelum memulai
jadi perintah yang benar adalah:
sumber
Sayangnya, tampaknya pm2 tidak mendukung fungsi persis yang Anda minta https://github.com/Unitech/PM2/issues/1317 .
Alternatif yang diusulkan adalah menggunakan
ecosystem.json
file Memulai penyebaran yang dapat mencakup pengaturan untuk lingkungan produksi dan pengembangan. Namun, ini masih digunakannpm start
untuk mem-bootstrap aplikasi Anda.sumber
However, this is still using npm start to bootstrap your app.
Bisakah Anda benar-benar menjalankannpm start
menggunakanpm2
?bisa berlari
jika Anda ingin menggunakan beberapa server, Anda dapat melakukannya. bukannya pm2 mulai npm - mulai
sumber
Untuk menjalankan PM2 dengan
npm start
metode dan untuk memberikannyaname
, jalankan ini,pm2 start npm --name "your_app_name" -- start
Untuk menjalankannya dengan meneruskan format tanggal untuk log,
pm2 start npm --name "your_name" --log-date-format 'DD-MM HH:mm:ss.SSS' -- start
sumber
Sekarang, Anda dapat menggunakan setelah:
Ikuti oleh https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
sumber
Ini berfungsi dengan baik pada CentOS 7
PM2 versi 4.2.1
mari kita ambil dua skenario:
1. npm mulai //server.js
2. npm menjalankan //main.js utama
sumber