Rumah >hujung hadapan web >tutorial js >Menyediakan Akses Berbilang Pengguna PMor pada Contoh Ubuntu
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.
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:
Sebelum kami bermula, pastikan anda mempunyai perkara berikut:
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.
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,
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.
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.
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.
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.
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.
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.
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!