כיצד לבצע סקריפט בעת ההפעלה על פטל פטל?
1. צור קובץ a.service עבור הסקריפט שלך.
2. העתק את הקובץ אל / etc / systemd / system.
3. בדקו את התסריט על ידי הפעלת השירות.
4. השתמש ב- systemctl להפעלה בזמן האתחול.
בין אם זה משמש כמרכז מדיה, שרת אינטרנט, קונסולת משחקים או פשוט כמחשב, יש אינספור סיבות לכך שתזדקק לתוכנית או סקריפט מסוים כדי להתחיל אוטומטית כאשר אתה מאתחל את ה- Raspberry Pi שלך. מדריך זה מלמד כיצד לאלץ סקריפט להתחיל בזמן האתחול על ידי הוספתו כשירות (לפני טעינת שולחן העבודה), או על ידי הוספה לקובץ ההפעלה האוטומטית שלך (לאחר טעינת שולחן העבודה).
שיטה 1 מתוך 2: הוספת סקריפט כשירות
- 1צור קובץ a.service עבור הסקריפט שלך. שיטה זו תלמד אותך כיצד ליצור שירות שמריץ את הסקריפט שלך בזמן האתחול לפני תחילת LXDE. אם הסקריפט דורש תלות שאינן פעילות באופן מיידי (כגון רשת או כל דבר גרפי), השירות יורה לסקריפט שלך להמתין עד שתהליכים אלה נטענו. צור קובץ (שנקרא scriptname.service) העוקב אחר מבנה זה, והחלף את הנתיבים והתיאור לפי הצורך:
[יחידה]
תיאור = השירות שלי
אחרי = רשת- online.target
[שירות] ExecStart = / usr / bin / python3 -u main.py
WorkingDirectory = / home / pi / myscript
StandardOutput = לרשת
StandardError = לרשת
הפעל מחדש = תמיד
משתמש = pi
[להתקין]
WantedBy = multi-user.target
- 2העתק את השירות אל / etc / system / system. יהיה עליך לעשות זאת כשורש, אז השתמש sudo. הנה דוגמה:
- sudo cp myscript.service /etc/systemd/system/myscript.service
- 3בדוק את השירות על ידי הפעלתו. לפני שתגדיר את הפעלת השירות באופן אוטומטי, תרצה לוודא שהתסריט פועל כהלכה בעת ביצועו. כדי להריץ את הסקריפט דרך השירות, תשתמש systemctl בפקודה כך:
- sudo systemctl start myscript.service
- ניתן להפסיק את השירות במידת הצורך על ידי הפעלת אותה פקודה, החלפה start עם stop.
- 4הגדר את השירות כך שיפעל בזמן האתחול. כל עוד הסקריפט מבוצע ללא שגיאה, אתה יכול להפעיל את הפקודה שמבטיחה שהתסריט פועל בזמן האתחול:
- sudo systemctl enable myscript.service
שיטה 2 מתוך 2: שימוש בקובץ ההפעלה האוטומטית
- 1להבין את הדרישות ואיך זה עובד. שיטה זו מחייבת את סביבת שולחן העבודה PIXEL עם הגרסה האחרונה של מערכת ההפעלה Raspbian. זה מושג על ידי עריכת קובץ "התחלה אוטומטית" המריץ פקודות בעת ההפעלה בסביבת שולחן העבודה LXDE, המהווה את המסגרת שעליה בנוי שולחן העבודה PIXEL של Raspberry Pi. שיטה זו עדיפה בתרחישים בהם:
- הסקריפט שלך מחייב את סביבת שולחן העבודה להפעלה
- הסקריפט שלך צריך לרוץ מחלון מסוף
- אתה רוצה לציין עבור אילו משתמשים הסקריפט יתחיל אוטומטית
- 2פתח את קובץ ההפעלה האוטומטית בעורך הטקסט של ננו. בחלון מסוף חדש, הפעל את הפקודה הבאה:
- sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart
- 3השתמש במקשי החצים כדי לנווט לסוף השורה השנייה ולחץ ↵ enter. פעולה זו תיצור שורה חדשה מעל @xscreensaver -no-splash הערך. משתמשים רבים דיווחו כי פקודות שנוספו מתחת לשורה זו אינן פועלות בהצלחה ולכן נהוג להוסיף פקודות מותאמות אישית מעל @xscreensaver הערך.
- 4הוסף פקודה להפעלת הסקריפט שלך. זה המקום שבו יש לך את מירב האפשרויות כי אתה יכול להזין כל פקודת מסוף שבדרך כלל תשתמש בה כדי להפעיל את הסקריפט שלך. לדוגמה, כדי להפעיל סקריפט bash שנקרא "myscript.sh" הנמצא בספרייה הביתית של "פאי" משתמש אחד היה להזין את הפקודה: /home/pi/myscript.sh. כמו כן, אם נדרשות הרשאות משתמש-על להפעלת הסקריפט, תוכל אפילו להקדים את הפקודה sudo.
- 5כלול את הנתיבים המלאים לכל שם קובץ. לדוגמא, כדי להריץ סקריפט Python הדורש הרשאות של משתמש-על הנקרא "myscript.py" שנמצא בספריית הבית של המשתמש "pi", היית מזין את הנתיב המלא הן לסקריפט ה- Python עצמו והן למתורגמן ל- Python, כגון כמו sudo /usr/bin/python /home/pi/myscript.py.
- 6החלט אם ברצונך להריץ את הסקריפט בחלון מסוף חדש בעת ההפעלה. לשם כך, תוכל להשתמש @lxterminal בפקודה עם -e השינוי ואחריו הנתיב המלא של הסקריפט שלך במרכאות. לדוגמה:
@lxterminal -e "/home/pi/myscript.sh"
- פעולה זו תבצע את התסריט מחלון מסוף חדש.
- 7הזן את הפקודות המתאימות להפעלת הסקריפט שלך. לאחר הכניסה, לחץ על Ctrl+ X ואז עקוב אחר ההוראות שעל המסך כדי לשמור את השינויים שלך.
- אם אינך מעוניין שהסקריפט שלך יופעל עוד יותר, פשוט ערוך את קובץ ההפעלה האוטומטית שוב, רק הפעם מחק את השורות שהוספת בעבר. ברגע שאתה שומר ויוצא, הסקריפט שלך כבר לא יפעל אוטומטית בעת ההפעלה.
- 8אתחל מחדש לבדיקה. השתמש sudo reboot בכדי לאתחל מחדש את ה- Raspberry Pi שלך. אם הסקריפט פועל כמתוכנן, הוא יפעיל אחד שמנהל החלונות יפעיל.