meta data for this page
Perbedaan
Ini menunjukkan perbedaan antara versi yang terpilih dengan versi yang sedang aktif.
Revisi selanjutnya | Revisi sebelumnya | ||
nodejs:menjalankan_project_dengan_pm2 [2024/09/22 01:07] – dibuat Mohammad Riza Nurtam | nodejs:menjalankan_project_dengan_pm2 [2024/09/23 00:05] (sekarang) – revisi lama ditampilkan kembali (2024/09/22 06:06) Mohammad Riza Nurtam | ||
---|---|---|---|
Baris 1: | Baris 1: | ||
- | ====== Menjalankan | + | ====== Menjalankan |
+ | |||
+ | ===== Install Node.js ===== | ||
+ | |||
+ | Sebelumnya pastikan nodejs sudah terinstall. Lihat laman [[: | ||
===== Menyiapkan directory dari project ===== | ===== Menyiapkan directory dari project ===== | ||
- | # pindah | + | Sebelum menjalankan program, siapkan directory terlebih dahulu. Directory /opt pada linux digunakan untuk meletakkan program 3rd party agar tidak mengganggu program internal dari sistem linux |
+ | |||
+ | ==== Pindah | ||
+ | < | ||
cd /opt | cd /opt | ||
- | # buat directory baru bernama projects\\ | + | </ |
+ | |||
+ | ==== Buat directory baru bernama projects | ||
+ | |||
+ | < | ||
sudo mkdir projects | sudo mkdir projects | ||
- | Menyiapkan permission dari project | + | </ |
- | # buat group baru\\ | + | ===== Menyiapkan permission dari project ===== |
+ | |||
+ | Agar sistem linux anda aman, maka program akan dijalankan sebagai user biasa, bukan sebagai user root. Untuk itu perlu disiapkan permission dari project tersebut. Pada contoh kasus ini, kami menggunakan group projects sebagai group yang akan menjalankan program. | ||
+ | |||
+ | ==== Buat group baru ==== | ||
+ | |||
+ | < | ||
sudo addgroup projects | sudo addgroup projects | ||
- | # jadikan | + | </ |
+ | |||
+ | ==== Jadikan | ||
+ | |||
+ | < | ||
sudo chgrp projects / | sudo chgrp projects / | ||
- | # tambahkan | + | </ |
+ | |||
+ | ==== Tambahkan | ||
+ | |||
+ | Pada kasus ini username yang akan menjalankan project adalah | ||
+ | < | ||
+ | |||
+ | * a: menambahkan user ke group tertentu, | ||
+ | * G: menambahkan tanpa menghapus user dari group yang sudah ada. | ||
+ | |||
+ | < | ||
sudo usermod -aG projects saya | sudo usermod -aG projects saya | ||
- | # masuk ke directory projects\\ | + | </ |
+ | |||
+ | ===== Menginisiasi project ===== | ||
+ | |||
+ | ==== Masuk ke directory projects | ||
+ | |||
+ | < | ||
cd / | cd / | ||
- | Menginisiasi project | + | </ |
- | # inisiasi | + | ==== Inisiasi |
- | sudo nest new patra --language=js | + | |
- | # ubah kepemilikan directory patra ke group projects\\ | + | Pada kasus ini kami membuat sebuah project bernama [[https:// |
+ | < | ||
+ | |||
+ | sudo nest new patra –language=js | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Ubah kepemilikan directory patra ke group projects | ||
+ | |||
+ | Agar user yang tergabung dalam group | ||
+ | < | ||
+ | < | ||
+ | |||
+ | < | ||
sudo chgrp -R projects / | sudo chgrp -R projects / | ||
- | 8. test running project sebagai user biasa\\ | + | </ |
- | npm run start\\ | + | |
- | # menghentikan proses\\ | + | |
- | [ctrl]+[c] | + | |
- | 9. build project\\ | + | ===== Menjalankan |
- | npm run build | + | |
- | 9. install | + | ==== Ujicoba menjalankan project sebagai user biasa ==== |
+ | |||
+ | Untuk menguji apakah program dapat berjalan, biasanya dicoba dengan menggunakan perintah | ||
+ | |||
+ | < | ||
+ | node app.js | ||
+ | |||
+ | </ | ||
+ | |||
+ | atau jika menggunakan framework seperti diatas dapat juga dijalankan dengan perintah | ||
+ | |||
+ | < | ||
+ | npm run start | ||
+ | |||
+ | </ | ||
+ | |||
+ | Untuk menghentikan program gunakan kombinasi tombol ** <font inherit/ | ||
+ | |||
+ | ===== Menginstall, | ||
+ | |||
+ | ==== Menginstall | ||
+ | |||
+ | PM2 adalah sebuah service yang akan menjalankan program nodejs dan memantau program tersebut serta merestartnya jika dibutuhkan. Untuk menginstall PM2 secara global gunakan perintah berikut | ||
+ | |||
+ | < | ||
sudo npm install -g pm2 | sudo npm install -g pm2 | ||
- | 10. running project dengan pm2 sebagai user biasa\\ | + | </code> |
- | # tambahkan proses\\ | + | |
- | pm2 start /opt/ | + | |
- | # melihat proses\\ | + | ==== Menjalankan program dengan pm2 sebagai user biasa ==== |
+ | |||
+ | Untuk menambahkan program ke PM2, gunakan perintah | ||
+ | |||
+ | < | ||
+ | pm2 start node / | ||
+ | |||
+ | </ | ||
+ | |||
+ | Untuk melihat proses | ||
+ | |||
+ | < | ||
pm2 list | pm2 list | ||
- | # menjadikan pm2 start otomatis ketika | + | </ |
+ | |||
+ | ==== Menjadikan agar PM2 langsung berjalan saat boot ==== | ||
+ | |||
+ | Agar PM2 dapat langsung berjalan saat server | ||
+ | |||
+ | < | ||
pm2 startup | pm2 startup | ||
- | # copy-paste perintah yang muncul pada tahapan diatas\\ | + | </code> |
- | sudo env PATH=$PATH:/usr/ | + | |
- | # menyimpan daftar proses saat ini\\ | + | Perintah tersebut akan memunculkan perintah yang akan dijalankan sebagai user root. Copy perintah yang muncul pada tahapan diatas dan jalankan. |
+ | |||
+ | < | ||
+ | sudo env PATH=$PATH:/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | Perintah ini membuat sebuah service baru atas nama user biasa, yaitu user | ||
+ | < | ||
+ | |||
+ | Kita dapat menyimpan daftar proses saat ini, agar ikut berjalan saat server boot | ||
+ | |||
+ | < | ||
pm2 save | pm2 save | ||
- | # jika ingin mencoba, mematikan semua proses\\ | + | </ |
+ | |||
+ | Jika ingin mencoba, mematikan semua proses | ||
+ | |||
+ | < | ||
pm2 stop all | pm2 stop all | ||
- | # mematikan salah satu proses saja, gunakan id dari proses tersebut\\ | + | </ |
+ | |||
+ | Jika ingin mematikan salah satu proses saja, gunakan id dari proses tersebut | ||
+ | |||
+ | < | ||
pm2 stop 2 | pm2 stop 2 | ||
- | # menghidupkan | + | </ |
+ | |||
+ | Menghidupkan | ||
+ | |||
+ | < | ||
pm2 start 2 | pm2 start 2 | ||
- | # setelah | + | </ |
+ | |||
+ | Setelah | ||
+ | |||
+ | < | ||
sudo reboot | sudo reboot | ||
+ | |||
+ | </ | ||