אחסון אתרים (nodejs)
-
@magicode כאשר עסקתי בVBA אז עורך הקוד היה מציג את כל הclassים שבפרוייקט. כיום כשאני ניגש לשרת עם winscp ועורך את הקבצים אז העורך מציג לי רק את הקובץ הספציפי ולא מכיר בשאר הקבצים המקושרים בפרוייקט.
שאלתי אם בגישת SSH הזו הוא מכיר את כל הפרוייקט או רק את הקובץ הספציפי שאותו עורכים. -
@chagold אמר באחסון אתרים (nodejs):
כאשר עסקתי בVBA אז עורך הקוד היה מציג את כל הclassים שבפרוייקט. כיום כשאני ניגש לשרת עם winscp ועורך את הקבצים אז העורך מציג לי רק את הקובץ הספציפי ולא מכיר בשאר הקבצים המקושרים בפרוייקט.
שאלתי אם בגישת SSH הזו הוא מכיר את כל הפרוייקט או רק את הקובץ הספציפי שאותו עורכים.זה תלוי ב IDE.
ב JS בשונה משפות אחרות היא לא בעלת טיפוסיות חזקה ולכן העורך IDE מתקשה להבין את הקשר. אלא אם כן בונים את זה בצורה מסודרת. -
כפי ש @dovid כתב כאן למעלה, ישנה בעיה בהרצת יישומי node.js אחרי שהטרנימל (או חיבור ה SSH) נסגר.
מה עושים?
יש כאן פתרון בתשובה הראשונה https://stackoverflow.com/questions/5818202/how-to-run-node-js-app-forever-when-console-is-closed
נראה לי שבשם @magicode נאמר כך למעלה.
אבל לא הצלחתי לעשות זאת. שמתי את הקובץ במקום שמוזכר בתשובה. אני מנסה להריץ דרך ה SSHsudo start myapp
ומקבל תשובה:
start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
מה עושים?
-
מצאתי פתרון דומה אך שונה:
https://gist.github.com/learncodeacademy/3a96aa1226c769adba39
(איך מיישרים לשמאל?)in ubuntu dist > 15.04 they uses systemd instead of upstart so my solution was
log to root
sunano /lib/systemd/system/<service name>.service
and write this
[Unit]
Description=Start <appname> node.js app[Service]
ExecStart=/usr/local/bin/node /home/deploy/<app name>/bin/www
Restart=always
to start and stop service useservice <service name> start
service <service name> stop
to make it start with bootcd /lib/systemd/system/
sudo systemctl enable <service name>
systemctl add-wants multi-user.target <servicename>.service -
פתרון נוסף והרבה יותר מוצלח לטעמי,
- nodemon. מאפשר הרצה קבועה וריסטארט כשמתבצעים שינויים.
- PM2. כלי ממש מוצלח! מיועד לא רק לnodejs. גם לפייתון, ועוד כמה שפות. מאפשר לבחור אינטרפטר, מאפשר גם הרצה ב upstart.
מוניטר שמציג את אחוזי השימוש של כל אפליקציה.
ניתן גם להגדיר שיפעיל אוטמטית כשיש שינויים בקבצים.
קיצר, כלי מושלם!
-
@aaron אמר באחסון אתרים (nodejs):
@dovid
זה אולי עובד, אבל מכוער. ומקשה בגישה חזרה לתהליך.
ולא מאפשר שום פונקציה ממה שהזכרתיהפתרונות שהצעת הם פתרונות ארוכי טווח, ואולי הם מצויינים (סתם ככה ככלל, כל פיתרון שמחייב כלי צד שלישי הוא פתרון "רגיש" שלא תמיד מתאים ויכול להיות מסרבל).
אני עניתי על שאלה פשוטה איך להריץ תהליך שלא נופל עם סגירת הSSH.