Rumah  >  Artikel  >  hujung hadapan web  >  Menyediakan Akses Berbilang Pengguna PMor pada Contoh Ubuntu

Menyediakan Akses Berbilang Pengguna PMor pada Contoh Ubuntu

王林
王林asal
2024-08-28 06:06:05543semak imbas

Setting Up PMor Multi-User Access on Ubuntu Instance

Mengurus aplikasi Node.js pada pelayan pengeluaran selalunya memerlukan pengurus proses untuk memastikan aplikasi anda berjalan lancar dan pulih secara automatik daripada ranap sistem. PM2 ialah salah satu pengurus proses yang paling popular untuk Node.js, menawarkan ciri berkuasa seperti pemantauan proses, pengurusan log dan mod kluster.

Jika anda menjalankan aplikasi pada contoh Google Cloud Ubuntu, anda mungkin menghadapi situasi di mana proses PM2 hanya kelihatan kepada pengguna yang memulakannya. Ini boleh menjadi masalah jika pelayan anda mempunyai berbilang pengguna, seperti pembangun, pentadbir sistem atau skrip penggunaan automatik. Dalam catatan blog ini, kami akan melalui langkah-langkah untuk mengkonfigurasi PM2 sebagai perkhidmatan seluruh sistem, menjadikannya boleh diakses oleh semua pengguna pada pelayan.

Mengapa Konfigurasikan PM2 sebagai Perkhidmatan Seluruh Sistem?

Secara lalai, PM2 berjalan sebagai proses di bawah pengguna yang memulakannya. Ini bermakna jika anda SSH ke pelayan anda sebagai satu pengguna dan memulakan proses PM2, proses itu tidak akan kelihatan kepada pengguna lain yang log masuk melalui SSH. Untuk menangani perkara ini, kami boleh mengkonfigurasi PM2 untuk dijalankan sebagai perkhidmatan di peringkat sistem. Pendekatan ini mempunyai beberapa kelebihan:

  • Keterlihatan Proses: Semua pengguna pada pelayan boleh melihat dan mengurus proses PM2.
  • Permulaan Automatik: PM2 akan bermula secara automatik pada but sistem, memastikan aplikasi anda sentiasa berjalan.
  • Pengurusan Berpusat: Log dan keadaan proses dipusatkan, menjadikannya lebih mudah untuk mengurus aplikasi anda.

Prasyarat

Sebelum kami bermula, pastikan anda mempunyai perkara berikut:

  1. Instance Google Cloud Ubuntu.
  2. Node.js dan npm dipasang pada tika.
  3. PM2 dipasang secara global.

Langkah 1: Pasang PM2 Secara Global

Untuk memastikan semua pengguna boleh mengakses PM2, ia harus dipasang secara global. Anda boleh memasang PM2 secara global menggunakan npm:

sudo npm install -g pm2

Arahan ini memasang PM2 dalam direktori npm global, menjadikannya tersedia di seluruh sistem.

Langkah 2: Sediakan PM2 sebagai Perkhidmatan Seluruh Sistem

Seterusnya, kita perlu menyediakan PM2 untuk dijalankan sebagai perkhidmatan. Ini akan membolehkan PM2 mengurus proses di peringkat sistem dan bukannya terikat pada sesi pengguna tertentu.

Jalankan arahan berikut untuk menjana skrip permulaan yang diperlukan untuk PM2:

pm2 startup

Arahan ini mengesan sistem init yang digunakan oleh tika Ubuntu anda (biasanya systemd) dan menyediakan arahan yang perlu dilaksanakan dengan sudo untuk mengkonfigurasi PM2 sebagai perkhidmatan seluruh sistem. Output akan kelihatan seperti ini:

[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u <username> --hp /home/<username>

Di sini, hendaklah digantikan dengan nama pengguna pengguna yang pada mulanya menyediakan PM2. Ini memastikan proses PM2 dipautkan ke direktori rumah pengguna yang betul.

Langkah 3: Laksanakan Perintah Dihasilkan

Salin arahan yang disediakan dalam output langkah sebelumnya dan laksanakannya. Contohnya:

sudo env PATH=$PATH:/usr/bin pm2 startup systemd -u johndoe --hp /home/johndoe

Arahan ini mencipta perkhidmatan systemd yang memulakan PM2 dengan pembolehubah persekitaran dan konteks pengguna yang betul.

Langkah 4: Simpan Senarai Proses PM2

Jika anda sudah mempunyai proses yang dijalankan di bawah PM2 yang anda mahu kekalkan sepanjang but semula, anda perlu menyimpan senarai proses semasa. Ini mencipta fail dump yang akan digunakan oleh PM2 untuk memulihkan proses apabila sistem bermula:

pm2 save

Arahan save pm2 menyimpan senarai semasa proses terurus ke fail JSON dalam ~/.pm2/dump.pm2. Fail ini dimuatkan secara automatik apabila PM2 bermula, memastikan aplikasi anda dihidupkan semula selepas but semula.

Langkah 5: Dayakan Perkhidmatan PM2 untuk Bermula pada Boot

Untuk memastikan PM2 bermula secara automatik apabila sistem but, anda perlu mendayakan perkhidmatan:

sudo systemctl enable pm2-johndoe

Ganti johndoe dengan nama pengguna yang sesuai. Perintah ini mendayakan perkhidmatan PM2, memastikan ia bermula apabila sistem but.

Langkah 6: Mengakses PM2 dengan Mana-mana Pengguna

Sekarang PM2 dikonfigurasikan sebagai perkhidmatan seluruh sistem, ia seharusnya boleh diakses oleh mana-mana pengguna pada pelayan. Untuk menyemak status proses atau menyenaraikannya, mana-mana pengguna boleh menjalankan:

pm2 list

Arahan ini akan memaparkan senarai proses yang diuruskan oleh perkhidmatan PM2 seluruh sistem, tanpa mengira pengguna yang log masuk.

Langkah 7: Konfigurasi Tambahan untuk Log Dikongsi (Pilihan)

Jika anda memerlukan log PM2 untuk diakses oleh berbilang pengguna, anda mungkin perlu melaraskan kebenaran fail atau mengkonfigurasi PM2 untuk menyimpan log dalam direktori kongsi. Ini memastikan semua pengguna boleh melihat dan mengurus log untuk proses yang dijalankan di bawah PM2.

Untuk menukar direktori fail log, anda boleh menggunakan pembolehubah persekitaran berikut:

export PM2_HOME=/path/to/shared/pm2/home

Set this in a global configuration file, like /etc/environment, to make it persistent across sessions.

Step 8: Managing PM2 Processes Across Users

Once PM2 is set up as a service, users can manage processes using standard PM2 commands. However, depending on the permissions and user roles, some commands might require sudo access. For example:

sudo pm2 list

This command will list the processes managed by the system-wide PM2 service, making it easier for administrators and developers to collaborate on server management.

Conclusion

Setting up PM2 as a system-wide service on your Ubuntu instance ensures that your Node.js applications are robustly managed and accessible to all users on the server. This setup is particularly useful in environments with multiple users or automated deployment processes, providing a reliable and centralized way to manage applications.

By following the steps outlined in this guide, you can ensure that PM2 is available to all users, your processes are automatically restarted after system reboots, and logs are easily accessible. This not only simplifies server management but also enhances the reliability of your applications in production.

Happy coding!

Atas ialah kandungan terperinci Menyediakan Akses Berbilang Pengguna PMor pada Contoh Ubuntu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn