How To
Menggunakan fork
mode
-
Buat file PM2 baru, saya beri nama
pm2-fork.json
-
Isi dengan
{
"apps" : [
{
"name": "fork-backend",
"script": "index.js",
"exec_interpreter": "node",
"exec_mode": "fork",
"instances": "2",
"autorestart": true,
"watch": false,
"max_memory_restart": "1G",
"error_file": "/dev/null",
"out_file": "/dev/null",
"increment_var" : "PORT",
"env": {
"PORT": 3000
}
}
]
}
Penjelasan
{
"apps" : [
{
"name": "fork-backend",
"script": "index.js",
"exec_interpreter": "node",
"exec_mode": "fork",
#you can add fork/replica
"instances": "2",
"autorestart": true,
"watch": false,
"max_memory_restart": "1G",
#disable log
"error_file": "/dev/null",
"out_file": "/dev/null",
#port will be increased
"increment_var" : "PORT",
#hapus variabel PORT di .env
"env": {
#it will create two replica with 2 port, 3000 & 3001 (because we defined instances: 2)
"PORT": 3000
}
}
]
}
Menggunakan cluster
mode
-
Buat file PM2 baru, saya beri nama
pm2-cluster.json
-
Isi dengan
{
"apps" : [
{
"name": "cluster-backend",
"script": "index.js",
"exec_interpreter": "node",
"exec_mode": "cluster",
"instances": "max",
"autorestart": true,
"watch": false,
"max_memory_restart": "1G",
"error_file": "/dev/null",
"out_file": "/dev/null"
}
]
}
Penjelasan
{
"apps" : [
{
"name": "cluster-backend",
"script": "index.js",
"exec_interpreter": "node",
"exec_mode": "cluster",
#if you got 2 core, than it will create 2 replica
"instances": "max",
"autorestart": true,
#dont watch change file, juse use `pm2 reload`
"watch": false,
"max_memory_restart": "1G",
#disable log
"error_file": "/dev/null",
"out_file": "/dev/null"
#you dont need specify port
#it will use internal load balance
}
]
}
Berbagai Macam Error yang Ada Saat Menggunakan PM2
npm ERR! could not determine executable to run
. Solusi, pastikan nodejs sudah terinstall. Di kasus saya, ini terjadi karena sebelumnya menggunakan
"script": "npx",
"args" : "index.js",
dan berhasil jalan tanpa error, tapi setelah beberapa lama (entah setelah update, jadi tidak bisa), solusi cukup di ganti
#dari awal memang tidak menggunakan npx
"script": "index.js",
"exec_interpreter": "node",
Sumber: