עזרה | הפעלת אתר nodejs על השרת
-
@איציק-דייטש הוא לא 'מפסיק לעבוד' הוא פשוט מנוטרל (terminated) בגלל שהוא צאצא של התהליך הנוכחי של הטרמינל שפתחת - שכאשר התהליך הזה נסגר - הוא סוגר את כל התהליכים הצאצאים שלו.
לכן מה שאתה צריך לעשות זה להריץ את זה בלי תלות בתהליך של טרמינל כזה או אחר.
יש כל מיני אפשרויות, החל מ-disown
שזה מנתק את ההורות של התהליך ההורה של התהליך - על התהליך (בקיצור מגרש אותו מהבית) והוא לא יהיה צאצא של הטרמינל. ומשכך הוא גם לא ינוטרל כשהטרמינל נסגר. גוגל - disown.
אפשר גם עםnohup
, (שעד כמה שאני זוכר הוא עובד כך שהוא שולח סיגנל של SIGHUP לתהליך - ובזה הוא מנתק אותו מהתהליך ההורה) זה דיי דומה.יותר נכון יהיה להכין לזה סרוויס service שיריץ את נוד בצורה נכונה, ותוכל להפעיל / לסגור / לאתחל את הסרוויס כרצונך. סרוויס, כמובן, לא תלוי בטרמינל או מה שקרא לו לרוץ. הוא רץ בפני עצמו - כצאצא של ה-systemd.
איך להכין סרוויס לתהליך של נוד בצורה פשוטה -
@איציק-דייטש התכוונת לשרת ווינדוז או לינוקס? והאם פתרת את הבעיה?
-
@אליעזר_הגדול אני עדיין צריך לקרוא את מה שהוא הביא לי למעלה
יש לך מה להציע? -
@איציק-דייטש אני מסתפק לפי התגובה הקודמת בפוסט אחר אם אתה מקנטר או באמת שואל, ובלי קשר עוד לא ענית איזו מערכת הפעלה.
-
@אליעזר_הגדול אובונטו
-
@איציק-דייטש תקרא את הצעד השלישי במדריך הזה:
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-18-04
בגדול אתה חייב לייצר סרוויס כדי שNODE לא יהיה תלוי במשתמש שלך אלא יהיה בפני עצמו. -
@אליעזר_הגדול המדריך הזה מתאים גם לאובונטו 20.04 נכון?
-
@איציק-דייטש https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-20-04
באתר הזה שיש הדרכה היא תואמת להכל -
@a0533057932 לפי המדריך פה
הוא אומר -g כדי להתקין גלובלי
מותר לי להוריד את זה כדי שיותקן רק על האפליקציה הנוכחית, נכון?
עשיתי ככה (בלי -g)
והפקודה הזאת לא עובדת
זה הפלט
-
@איציק-דייטש אמר בעזרה | הפעלת אתר nodejs על השרת:
@a0533057932 לפי המדריך פה
הוא אומר -g כדי להתקין גלובלי
מותר לי להוריד את זה כדי שיותקן רק על האפליקציה הנוכחית, נכון?
עשיתי ככה (בלי -g)
והפקודה הזאת לא עובדת
זה הפלט
-
@איציק-דייטש לא. אם אתה מתקין אותו ספציפית לפרוייקט, אתה לא יכול להפעיל אותו ככה, אלא עם הנתיב המלא שלו בתיקייה node_modules. משהו כזה:
./node_modules/path/to/pm2 start hello.js
אם אתה בכל זאת מתעקש לא להתקין אותו גלובלית, אתה יכול להתקין אותו בצורה של dev-dependency ככה:
npm i --save-dev pm2@latest
וככה הוא מותקן ספציפית בפרוייקט, ואתה יכול לקרוא לו כמו בן אדם:
pm2 start hello.js
בכל מקרה אני הייתי מעדיף לעבוד בפרוסס מנג'ר כמו pm2 בהתקנה גלובלית.
-
@איציק-דייטש כמו ש @מוטי-אורן התותח אמר, מומלץ להתקין את pm2 גלובלית. זה לא קשור גם לפרוייקט שלך ספציפית יותר מידי, אלא למכונה עצמה.
זה כמו לא להתקין את nodeJS גלובלית. -
@מוטי-אורן אין לי בעיה להתקין אותו גלובלי, אבל אני רק רוצה לדעת אם זה לא פוגע ב nodebb
-
@איציק-דייטש אמר בעזרה | הפעלת אתר nodejs על השרת:
@מוטי-אורן אין לי בעיה להתקין אותו גלובלי, אבל אני רק רוצה לדעת אם זה לא פוגע ב nodebb
לא, אין לו איך לפגוע בשום דבר..
-
@chv תודה רבה!
@מוטי-אורן תודה גם לך!
תודה לכל העוזרים
מקווה שלא יהיו לי עוד שאלות/ שגיאות