Octofarm: البدء التلقائي الموصى به لـ npm (تحت لينكس)؟

تم إنشاؤها على ٢٨ أبريل ٢٠٢٠  ·  5تعليقات  ·  مصدر: OctoFarm/OctoFarm

هل هناك طريقة موصى بها لبدء تشغيل npm تلقائيًا بعد اكتمال التمهيد في نظام التشغيل Linux. لقد حاولت القيام بذلك باستخدام init.d ولم أحقق نجاحًا.

question

التعليق الأكثر فائدة

كنت أستخدم ملف خدمة systemd بنجاح باستخدام Ubuntu. كما يقول جيمس ، الإصدار الأحدث يأتي مع pm2. باستخدام pm2 ، يمكنك تشغيل pm2 startup وسيكتشف نظام init الخاص بك ويخرج أمرًا للتشغيل لإنشاء ملفات بدء التشغيل. لقد فعلت ذلك للتو ويبدو أنه يعمل بشكل جيد.

الكشف الكامل: لم أسمع حتى عن pm2 قبل اليوم لذا كان علي إجراء القليل من البحث وهذا ما وجدته وما فعلته ويبدو أنه يعمل.

هذا ما يحدث عند تشغيل pm2 startup

ubuntu<strong i="10">@octofarm</strong>:~$ OctoFarm/node_modules/pm2/bin/pm2 startup
[PM2] Init System found: systemd
ubuntu
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

ثم بعد تشغيل الأمر أخبرني:

ubuntu<strong i="14">@octofarm</strong>:~$ sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=ubuntu
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/ubuntu/.pm2
PIDFile=/home/ubuntu/.pm2/pm2.pid
Restart=on-failure

ExecStart=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-ubuntu.service
Command list
[ 'systemctl enable pm2-ubuntu' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-ubuntu.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-ubuntu...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service → /etc/systemd/system/pm2-ubuntu.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

ال 5 كومينتر

كثيرًا ما يستخدم حزمة npm تسمى pm2.

يمكنك التثبيت بـ npm install pm2 -g

ثم قم بتشغيل ما يلي.

pm2 startup

انسخ والصق الإخراج الذي يمنحك pm2 بعد ذلك الأخير.

pm2 start app.js --name OctoFarm

pm2 save

https://pm2.keymetrics.io/docs/usage/startup/

هناك المزيد من المعلومات حول هذا الموضوع هنا من أجلك ، يرجى إعلامي إذا واجهتك مشكلة.

1.1.5 يأتي مع pm2 باعتباره تبعية ويتم تشغيله باستخدام ذلك ، آمل أن أكون قادرًا على تمكين أوامر بدء التشغيل عند التمهيد ، لذا فهي كلها تلقائية ولكني لم أنظر إليها كثيرًا حتى الآن.

كنت أستخدم ملف خدمة systemd بنجاح باستخدام Ubuntu. كما يقول جيمس ، الإصدار الأحدث يأتي مع pm2. باستخدام pm2 ، يمكنك تشغيل pm2 startup وسيكتشف نظام init الخاص بك ويخرج أمرًا للتشغيل لإنشاء ملفات بدء التشغيل. لقد فعلت ذلك للتو ويبدو أنه يعمل بشكل جيد.

الكشف الكامل: لم أسمع حتى عن pm2 قبل اليوم لذا كان علي إجراء القليل من البحث وهذا ما وجدته وما فعلته ويبدو أنه يعمل.

هذا ما يحدث عند تشغيل pm2 startup

ubuntu<strong i="10">@octofarm</strong>:~$ OctoFarm/node_modules/pm2/bin/pm2 startup
[PM2] Init System found: systemd
ubuntu
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

ثم بعد تشغيل الأمر أخبرني:

ubuntu<strong i="14">@octofarm</strong>:~$ sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=ubuntu
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/ubuntu/.pm2
PIDFile=/home/ubuntu/.pm2/pm2.pid
Restart=on-failure

ExecStart=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-ubuntu.service
Command list
[ 'systemctl enable pm2-ubuntu' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-ubuntu.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-ubuntu...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service → /etc/systemd/system/pm2-ubuntu.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

شكرا للاستجابة السريعة لكلا منكما. سأحاول هذا لاحقًا اليوم. أنا أحب / أكره أنظمة Linux - حوالي 10 طرق مختلفة لفعل كل شيء. لقد بدأت مع BSD Unix في أواخر الثمانينيات.

لا توجد مشكلة ، سأترك هذا مفتوحًا الآن لتذكيرني بإضافة بعض الملاحظات إلى README / Wiki

تمت إضافة وثائق التثبيت للقيام بهذه المنصة المتقاطعة

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

juangonzalezpr picture juangonzalezpr  ·  10تعليقات

Nomad965 picture Nomad965  ·  15تعليقات

tophattwaffle picture tophattwaffle  ·  10تعليقات

gmccauley picture gmccauley  ·  3تعليقات

Crowlord picture Crowlord  ·  14تعليقات