เรียกใช้งานสคริปต์เมื่อเริ่มทำงาน


189

ฉันพยายามเรียกใช้สคริปต์เมื่อ Raspberry Pi ของฉันบูทขึ้น ฉันต้องการให้เว็บเบราว์เซอร์เปิดขึ้นอัตโนมัติ

ฉันพยายามหาวิธีแก้ปัญหาง่ายๆ (เช่นวางสคริปต์ในไดเรกทอรี "เริ่มต้น" หรือบางอย่างที่คล้ายกัน) แต่ฉันไม่เห็นอะไรแบบนั้น

ฉันมองเข้าไปในพุ่งพรวดแต่ฉันพยายามที่จะเข้าใจวิธีการทำงาน สคริปต์ใด ๆ ที่ฉันพยายามไม่ทำงานเมื่อฉันทดสอบพวกเขาออกมา


4
คุณใช้ระบบปฏิบัติการอะไร ใน FreeBSD ที่ฉันใช้กับ Pi ของฉันคุณสามารถเพิ่มสคริปต์เริ่มต้นใน /usr/local/etc/rc.d/ หรือเพิ่มสิ่งต่างๆลงใน /etc/rc.local Linux distros ที่แตกต่างกันมีวิธีที่แนะนำแตกต่างกัน หากคุณกำลังใช้งาน X อยู่คุณควรพิจารณาเพิ่มสิ่งต่างๆลงในไฟล์.xinitrcหรือของคุณ .xsession
ghoti

ข้อมูลเพิ่มเติมเกี่ยวกับขั้นตอนการเริ่มต้น X ที่สามารถพบได้ที่นี่
ghoti

6
โปรดทราบคำตอบที่ได้รับการยอมรับที่นี่มีคำเตือนบางอย่างและในทางเทคนิคจะไม่เริ่มอะไรในการบูตยกเว้นภายใต้เงื่อนไขที่เฉพาะเจาะจง อ่านอย่างระมัดระวัง
goldilocks

คุณกำลังขอสคริปต์ที่ทำงานเมื่อคุณเข้าสู่ระบบไม่ใช่เมื่อ pi บูทหรือเมื่อเริ่มต้นระบบ สองสิ่งที่แตกต่างกันมากและชื่อเรื่องบิดเบือนผลการค้นหาของ Google
IAmNaN

คำตอบ:


197

สำหรับการเรียกใช้ Midori เมื่อเริ่มต้นให้ดูที่บทช่วยสอนนี้ สำหรับโซลูชั่น DIY อ่านต่อ


คุณสามารถเพิ่มคำสั่งสคริปต์ปฏิบัติการของคุณไปยังด้านล่างของ.bashrcที่จะเรียกใช้สคริปต์ของคุณทุกครั้งที่เปิด terminal (หรือเรียกใช้อินสแตนซ์ใหม่bash )

  1. ตรวจสอบให้แน่ใจว่าคุณอยู่ในpiโฟลเดอร์:

    $ cd ~
    
  2. สร้างไฟล์และเขียนสคริปต์เพื่อให้ทำงานในไฟล์:

    $ sudo nano superscript
    
  3. บันทึกและออกจาก: Ctrl+ X, Y,Enter

  4. เปิด.bashrcการกำหนดค่า:

.bashrcจะไม่ได้ตั้งใจที่จะเรียกใช้สคริปต์

มันถูกเรียกใช้ในแต่ละครั้งที่เริ่มต้นเชลล์แบบโต้ตอบที่ไม่ใช่การเข้าสู่ระบบและใช้เพื่อกำหนดค่าเชลล์
~/.bashrc: executed by bash(1) for non-login shells.

   $ sudo nano .bashrc
  1. เลื่อนลงไปด้านล่างและเพิ่มบรรทัด: ./superscript

  2. บันทึกและออกจาก: Ctrl+ X, Y,Enter


หากคุณกำลังมองหาวิธีแก้ปัญหาที่ใช้งานได้ในการบูทเครื่องไปที่คอนโซลลองดูที่ลิงค์นี้ บทสรุปพื้นฐาน:

  1. สร้างไฟล์สำหรับสคริปต์เริ่มต้นของคุณและเขียนสคริปต์ของคุณในไฟล์:

    $ sudo nano /etc/init.d/superscript
    
  2. บันทึกและออกจาก: Ctrl+ X, Y,Enter

  3. ทำให้สคริปต์เรียกใช้งานได้:

    $ sudo chmod 755 /etc/init.d/superscript
    
  4. สคริปต์ลงทะเบียนที่จะทำงานเมื่อเริ่มต้น:

    $ sudo update-rc.d superscript defaults
    

หากคุณต้องการให้สคริปต์ทำงานเมื่อคุณบูตเข้าสู่สภาพแวดล้อม LXDEคุณสามารถดูที่โพสต์ฟอรัม Raspberry Pi นี้ :

  1. นำทางไปยัง ~/.config/lxsession/LXDE-pi

  2. เปิดautostartไฟล์ในโฟลเดอร์นั้น:

    $ sudo nano autostart
    
  3. เพิ่ม@midoriในบรรทัดใหม่ หากคุณต้องการเรียกใช้บางสิ่งบางอย่างเช่นสคริปต์หลามให้ใส่สิ่งที่ชอบ@python mypython.pyในบรรทัดใหม่ เล่นไฟล์สคริปต์จะเป็น@./superscriptแต่ด้วยเหตุผลบางสคริปต์ที่ทำงานในวง จำกัด (บางทีนี้จะหยุดนั้น)

  4. บันทึกและออกจาก: Ctrl+ X, Y,Enter

  5. รีสตาร์ท Raspberry Pi ของคุณลงในสภาพแวดล้อม LXDE


การสอนเกี่ยวกับการตั้งค่า Midori เมื่อเริ่มต้นเป็นสิ่งที่ฉันกำลังมองหา ไม่แน่ใจว่าทำไมมีหลายวิธีในการทำสิ่งง่าย ๆ แต่ฉันดีใจที่มันทำงานได้ในตอนนี้
Tyler Murry

1
@ syb0rg ส่วนที่เรียกใช้เมื่อเข้าสู่ระบบทำงานได้อย่างมีเสน่ห์ (+1) ถ้าฉันลงชื่อเข้าใช้ผ่าน ssh แต่ไม่ใช่เมื่อเริ่มเซสชัน lxde เดสก์ท็อป มีวิธีทำเช่นนั้นหรือไม่?
George Profenza

@GeorgeProfenza เมื่อคุณทำ$ sudo startxอะไร
syb0rg

2
แค่ต้องการชี้ให้เห็นว่าสคริปต์ pyhton จะทำงาน แต่ถ้ามีข้อผิดพลาดมันจะอยู่ที่ไหนสักแห่งในพื้นหลังโดยใช้วิธี / etc / xdg / lxsession / LXDE / autostart การใช้. barshrc จะเปิดเผยข้อผิดพลาดเช่นกัน แต่มันสำคัญมากที่จะต้องแน่ใจว่าสคริปต์นั้นแน่นในตอนแรก (พบว่าวิธียาก :))
George Profenza

7
.bashrcจะไม่อ่านเมื่อบูทระบบหรือเมื่อผู้ใช้ล็อกอินเฉพาะเมื่อเปิดเทอร์มินัลใหม่ (และจะอ่านทุกครั้งที่ผู้ใช้เปิดเทอร์มินัลใหม่) ฉันงงงันว่าคำตอบนี้มีจำนวนมากดังนั้น upvotes: ส่วนแรกเป็นความผิดธรรมดา ส่วนที่สามนั้นถูกต้องเพื่อเรียกใช้งานโปรแกรม GUI
Gilles

46

วิธีการที่ผมเคยเห็นคนส่วนใหญ่ทำมัน (ได้ดูในฟอรั่มราสเบอร์รี่ Pi) /etc/rc.localและได้กระทำตัวเองด้วยความสำเร็จคือการใช้

สิ่งที่คุณต้องทำที่นี่คือใส่./myscriptในไฟล์ข้อความ rc.local python myscript.pyถ้าเป็นในหลามใส่

นี่คือ "ทางออกที่ง่าย (เช่นวางสคริปต์ในไดเรกทอรี" เริ่มต้น "หรือบางอย่างที่คล้ายกัน)" - อาจค้นหาในฟอรัมเมื่อคุณมีคำถามเช่นกันโซลูชันนี้ปรากฏในผลลัพธ์ 4 รายการแรกของ ค้นหา Google!


4
FYI rc.local โดยค่าเริ่มต้นมีความคิดเห็นต่าง ๆ เกี่ยวกับสคริปต์ที่ไม่ทำอะไรเลยและจำเป็นต้องเปลี่ยนบิตที่สามารถเรียกใช้งานได้ สิ่งนี้ไม่เป็นความจริงเพียงป้อนคำสั่งสำหรับสคริปต์ของคุณก่อนที่จะออก 0 และมันจะทำงานเมื่อเริ่มต้น ตรวจสอบให้แน่ใจว่าสคริปต์ของคุณออกจากการทำงานในพื้นหลังไม่เช่นนั้นจะบล็อกพรอมต์การเข้าสู่ระบบ ใช่นั่นคือสิ่งที่ฉันทำ
rob


@rob คุณหมายถึงพวกเขาแนะนำให้สคริปต์ตั้งค่าให้ทำงานได้หรือไม่? python myscript.pyนี้จะลดลงในคำถามโดยใช้สคริปต์โดยคำสั่ง หากคุณต้องการ chmod + x และเพิ่ม#! /bin/pythonคุณสามารถเรียกใช้สคริปต์ด้วยการทำ$pathtofile/myscript.pyที่$pathtofileเป็น.ถ้าคุณอยู่ในไดเรกทอรีเดียวกันหรือเส้นทางที่แน่นอนหรือญาติไปยังแฟ้ม
JFA

1
ไม่ดีสำหรับโปรแกรม GUI เช่นเบราว์เซอร์ /etc/rc.localใช้เพื่อเริ่มบริการระบบเท่านั้น (โปรแกรมที่ไม่มีส่วนต่อประสานผู้ใช้)
Gilles

1
@ ErickM.Sprengel ใช้หนึ่งในคำตอบที่ถูกต้องในหัวข้อนี้เช่นนี้
Gilles

32

เพิ่มลงใน crontab

crontab รันคำสั่งตามเวลาที่กำหนด


แก้ไขไฟล์:

sudo crontab -e

เพิ่ม line to file (นี่เป็นสคริปต์ python):

@reboot python3 /home/pi/Desktop/exemple.py &

2
หากต้องการเป็น nitpicking เล็กน้อยที่นี่ในทางเทคนิคแล้วมันไม่ใช่ crontab ที่รันคำสั่ง แต่ยังไงก็ตาม สำหรับการเพิ่มบรรทัดที่แสดงรายการแนะนำให้ใส่พา ธ แบบเต็มสำหรับคำสั่งที่กำหนดไว้ที่นี่ (ในกรณีนี้พา ธ แบบเต็มไปที่python3) ดูที่นี่
Ghanima

นี่เป็นวิธีที่ฉันใช้อยู่เสมอเพราะมันเป็นความเรียบง่าย +1
Patrick Cook

ไม่ดีสำหรับโปรแกรม GUI เช่นเบราว์เซอร์ /etc/rc.localใช้สำหรับเริ่มโปรแกรมที่ไม่มีส่วนต่อประสานผู้ใช้เท่านั้น
Gilles

2
หลังจากใช้เวลามากในการพยายามทำให้มันทำงานกับ rc.local และ init.d และสิ่งอื่น ๆ อีกมากมาย .. สิ่งนี้ใช้ได้ทันที! ขอบคุณมาก!
Piotr Kula

4
สิ่งนี้ใช้ไม่ได้ด้วยเหตุผลบางอย่างใน rpi os
เดนิส

11

เริ่มต้นแอพ xorg อัตโนมัติ

หากสคริปต์ที่คุณต้องการเริ่มต้นต้องมีเซสชัน xorg คุณอาจลองทำตามข้อมูลจำเพาะ autostart freedesktopซึ่งอาจจะทำงานได้หรือไม่ขึ้นอยู่กับสภาพแวดล้อมเดสก์ทอปที่คุณใช้

หรือคุณสามารถกำหนดเป้าหมายสภาพแวดล้อมเดสก์ทอปของคุณโดยเฉพาะตามที่อธิบายไว้ในhttps://wiki.archlinux.org/index.php/autostarting

การเรียกใช้สคริปต์เป็นบริการ systemd

หากสคริปต์ของคุณเหมาะกับคำอธิบายของ daemon หรือ 'บริการ' และระบบของคุณกำลังเรียกใช้systemdซึ่งเป็นกรณีของ raspbian และ linuces ทันสมัยที่สุดคุณสามารถกำหนดค่าสคริปต์ของคุณให้ทำงานเป็นบริการ systemd ได้ สภาพแวดล้อมวงจรชีวิตและการดำเนินการเช่นเดียวกับปัจจัยพื้นฐานสำหรับ (อีกครั้ง) การเริ่มต้นสคริปต์เช่นเครือข่ายเป็นและการทำงาน นอกจากนี้ยังเป็นไปได้ที่จะกำหนดค่าบริการเริ่มต้นใหม่ในกรณีที่เกิดความล้มเหลว ( Restart=alwaysและความล่าช้าระหว่างการรีสตาร์ทเช่นRestartSec=10)

สำหรับการใช้งานทั่วทั้งระบบให้สร้างไฟล์ systemd unit ของคุณภายใต้/etc/systemd/systemเช่นvim /etc/systemd/system/autossh.service:

[Unit]
Description=Autossh keepalive daemon
## make sure we only start the service after network is up
Wants=network-online.target
After=network.target

[Service]
## use 'Type=forking' if the service backgrounds itself
## other values are Type=simple (default) and Type=oneshot
Type=forking
## here we can set custom environment variables
Environment=AUTOSSH_GATETIME=0
Environment=AUTOSSH_PORT=0
ExecStart=/usr/local/bin/ssh-keep-alive.sh
ExecStop=/usr/bin/killall -9 autossh
### NOTE: you can have multiple `ExecStop` lines
ExecStop=/usr/bin/killall ssh
# don't use 'nobody' if your script needs to access user files
# (if User is not set the service will run as root)
#User=nobody

# Useful during debugging; remove it once the service is working
StandardOutput=console

[Install]
WantedBy=multi-user.target

ดูสิ่งนี้ด้วย:

  • [ unit]การกำหนดค่า

  • [ service]การกำหนดค่า

ตอนนี้เราพร้อมที่จะทดสอบบริการ:

systemctl start autossh

การตรวจสอบสถานะของบริการ:

systemctl status autossh

หยุดบริการ:

systemctl stop autossh

เมื่อคุณยืนยันว่าบริการใช้งานได้ตามที่คาดไว้ให้เปิดใช้งานด้วย:

systemctl enable autossh

หมายเหตุ: เพื่อจุดประสงค์ด้านความปลอดภัยsystemdจะเรียกใช้สคริปต์ในสภาพแวดล้อมที่ จำกัด เช่นเดียวกับวิธีการcrontabเรียกใช้สคริปต์ดังนั้นอย่าคาดเดาเกี่ยวกับตัวแปรระบบที่มีอยู่ก่อน ใช้Environmentปุ่มต่างๆหากสคริปต์ของคุณต้องการกำหนดตัวแปรเฉพาะ การเพิ่มset -xที่ด้านบนสุดของสคริปต์ทุบตีของคุณจากนั้นเรียกใช้systemctl status my_serviceอาจช่วยระบุสาเหตุที่สคริปต์ของคุณล้มเหลว ตามกฎของ tumb ให้ใช้พา ธ สัมบูรณ์สำหรับทุกสิ่งรวมถึงechoและcatหรือกำหนด $ PATH ของคุณอย่างชัดเจน


7

ฉันต้องการที่จะโยนในสองเซ็นต์ของฉันแม้ว่าจะเป็นคำถามเก่า แต่ถามโดยทั่วไปว่าจะทำสิ่งที่ง่าย - เริ่มอัตโนมัติ ฉันลองวิธีแก้ปัญหาที่แนะนำทั้งหมดในคำตอบทั้งหมดสำหรับคำถามนี้ ไม่มีพวกเขาทำงานให้ฉัน ฉันใช้ Raspberry PI Model 2 กับ Raspbian

วิธีเดียวที่ฉันจะทำให้แอปพลิเคชันของฉันเริ่มต้นโดยอัตโนมัติได้สำเร็จคือผ่านสคริปต์ดังต่อไปนี้ ฉันพูดได้สำเร็จเพราะแอปพลิเคชันของฉันเริ่มต้นตามที่คาดไว้โดยไม่มีปัญหาเช่นเริ่มต้นด้วยเส้นทางการทำงานที่ผิด

1. สร้างไฟล์ว่างที่มีนามสกุล. sh และตั้งชื่อตามที่คุณต้องการ

2. คัดลอกและวางต่อไปนี้อย่างแน่นอนยกเว้นเปลี่ยน "ชื่อแอปพลิเคชันของคุณ" เป็นชื่อสคริปต์ที่คุณเพิ่งสร้างขึ้น

 #! /bin/sh

 ### BEGIN INIT INFO
 # Provides:          noip
 # Required-Start:    $remote_fs $syslog
 # Required-Stop:     $remote_fs $syslog
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
 # Short-Description: Simple script to start a program at boot
 ### END INIT INFO

 #change /direct/path/to/your/application to the path your application is in.
 cd /direct/path/to/your/application      # example cd /home/pi/myprogram/

 #change YourProgramExactName to Exact name of your program that you want to auto start
 ./YourProgramExactName

 exit 0 
  1. จากนั้นบันทึกไฟล์สคริปต์ภายในโฟลเดอร์แอปพลิเคชันของคุณ

  2. จากนั้นเปิด/home/pi/.config/autostartโฟลเดอร์ มันอาจจะแตกต่างกันในกรณีของคุณ เพียงเปิดโฟลเดอร์บ้านของคุณและเปิดใช้งานดูโฟลเดอร์ที่ซ่อนอยู่ .config/autostartเปิด หากคุณไม่เห็นโฟลเดอร์ autostart ให้สร้างโฟลเดอร์ชื่อ autostart ภายในโฟลเดอร์. config

  3. ภายในโฟลเดอร์เริ่มอัตโนมัติคุณจะต้องสร้างทางลัดไปยังไฟล์สคริปต์ที่คุณสร้างขึ้นดังนี้ .desktopสร้างไฟล์ที่ว่างเปล่าที่มีนามสกุล

  4. คัดลอกและวางต่อไปนี้ในไฟล์เดสก์ทอปว่างเปล่ายกเว้นคุณจะต้องเปลี่ยนComment, Name, Exec, PathและIconข้อมูลของค่า

    [Desktop Entry]
    Comment=
    Exec=/path/to/Your/application/Name-of-the-script-file (.sh)
    Icon=/Path/to/Your/application/Icon/IconName
    Name=YourApplicationEXACTNAME
    Path=/Path/to/Your/Application-ONLY
    Type=Application
    
  5. บันทึกและปิดไฟล์หลังจากเปลี่ยนฟิลด์ที่จำเป็นทั้งหมด คุณทำเสร็จแล้ว ลองทดสอบดูสิ


ในทางเทคนิคแล้วสคริปต์นี้ถูกเรียกใช้โดยระบบแทนที่จะเป็นผู้ใช้ที่เฉพาะเจาะจงดังนั้นบางทีแอปพลิเคชันของคุณอาจอยู่ใน/usr/local/bin/ApplicationName...
SlySven

@SlySven "ระบบ" เป็นผู้ใช้เฉพาะ
การชดเชย จำกัด

มันคือการทำงานเป็นราก (UID = 0) หรือผู้ใช้ปี่ (UID ~ 500 หรือ 1000 IIRC) - หากมีการทำงานเป็นรากหรืออีกระบบโพสต์ (น้อยกว่า 500 บาท) แล้วมันเป็นประเพณีปฏิบัติที่ดีในการจัดเก็บไฟล์สคริปต์ ( หรือสิ่งที่ขึ้นอยู่กับ) บนอุปกรณ์รูทดังนั้นควรจะมีปัญหากับอุปกรณ์อื่น ๆ (เช่นhomeถ้าเป็นอุปกรณ์แยกต่างหาก) จะไม่มีปัญหากับไฟล์สคริปต์ (หรือไฟล์ที่เรียกใช้งานได้) เมื่อไม่สามารถใช้งานได้ ระบบล้มเหลวกลับไปเป็น/bin/shเชลล์ผู้ใช้เดียว! ทุกวันนี้systemdวิธีคือการเมาทั้งก่อน/และ/usrเริ่ม PID 1 ...
SlySven

5

ฉันยังมีปัญหากับสิ่งนี้ ใน Raspberry Pi3 ที่รัน Raspbian นี่คือสิ่งที่ฉันทำ:

  1. สร้างเชลล์สคริปต์เริ่มต้นในไดเรกทอรีรากของคุณ (ฉันชื่อ mine "launch"):

sudo leafpad launch.sh

  1. บันทึกไฟล์
  2. แก้ไขไฟล์ autostart LXDE-pi

sudo leafpad /home/pi/.config/lxsession/LXDE-pi/autostart

  1. เพิ่มส่วนนี้ลงที่ด้านล่างของไฟล์

./launch.sh

  1. รีบูต

3

ใน Raspberry Pi3 ที่รัน Raspbian Stretch นี่คือสิ่งที่ฉันทำ:

แก้ไขไฟล์ autostart LXDE-pi

    sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

เพิ่มส่วนนี้ลงที่ด้านล่างของไฟล์

    @sudo python3 /path/to/your/script.py

บันทึกและรีบูต


1

วิธีที่ 1:

ในการเรียกใช้คำสั่งอัตโนมัติเมื่อเข้าสู่ระบบให้ใส่คำสั่งลงในไฟล์

.bashrc

ในไดเรกทอรีผู้ใช้ (เช่น / home / pi)

.bashrcจะไม่ได้ตั้งใจที่จะเรียกใช้สคริปต์

มันถูกเรียกใช้ในแต่ละครั้งที่เริ่มต้นเชลล์แบบโต้ตอบที่ไม่ใช่การเข้าสู่ระบบและใช้เพื่อกำหนดค่าเชลล์
~/.bashrc: executed by bash(1) for non-login shells.

ตัวอย่างเช่นไฟล์อาจมี

chromium-browser --kiosk www.google.com

เพื่อเปิด Chromium แบบเต็มหน้าจอโดยชี้ไปที่ www.google.com


วิธีที่ 2:

วิธีนี้ใช้ได้ผลดีจริงๆ เมื่อเบราว์เซอร์โหลดขึ้นจะมีสี่เหลี่ยมสีดำเล็ก ๆ ที่มุมบนซ้ายของหน้าจอซึ่งดูเหมือนว่าจะเป็นบั๊กทั่วไป (ซึ่งถูกกล่าวถึงในฟอรัมโดยผู้อื่น) แต่โหมดอื่น ๆ เต็มหน้าจอจะซ่อนทุกอย่างยกเว้นหน้าเบราว์เซอร์

แก้ไขไฟล์ autostart:

sudo nano /etc/xdg/lxsession/LXDE/autostart 

ใส่ความคิดเห็นทุกอย่างโดยใช้ '#' ที่จุดเริ่มต้นของแต่ละบรรทัดแล้วเพิ่มบรรทัดต่อไปนี้

เรียกใช้เบราว์เซอร์อัตโนมัติ

@xset s off
@xset -dpms
@xset s noblank
@midori -e Fullscreen -a http://google.com

หากจำเป็นให้ใช้เครื่องมือกำหนดค่าเพื่อเปิดใช้งานการเรียกใช้ GUI โดยอัตโนมัติเมื่อเปิดเครื่อง

sudo raspi-config

หากคุณต้องการออกกลับไปที่พรอมต์คำสั่ง CTRL+ ALT+F1

CTRL+ ALT+F2


0

คุณสามารถวางสคริปต์ของคุณที่ด้านล่างของ/etc/profileไฟล์

ตัวเลือกอื่นไม่ได้ผลสำหรับฉัน แต่อาจเป็นเพราะฉันวางสคริปต์ไว้บนเดสก์ท็อป


0

สร้างไฟล์. sh ด้วยคำสั่ง 'python /path/to/your/script.py' type 'sudo nano /etc/rc.local' และพิมพ์พา ธ ไปยังไฟล์. sh

ก่อน

exit 0

หรือคุณสามารถพิมพ์

crontab -e

หรือ

sudo crontab -e 

หากคุณต้องการให้สคริปต์ทำงานเมื่อเริ่มต้น

ข้างในประเภทไฟล์

@reboot python /path/to/your/script.py &

2
ขอแนะนำให้ใช้เส้นทางแบบเต็มสำหรับรายการ crontab!
Ghanima

-2

มันทำงาน (ในทุก ๆ การรีบูตมันเตรียมการส่งต่อไปนี้โดยอัตโนมัติ)

$ cat /etc/rc.local
#!/bin/sh -e
echo "18" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio18/direction
echo "1" > /sys/class/gpio/gpio18/value
exit 0

-2

นี่คือสิ่งที่ฉันทำโดยทั่วไป

  1. เก็บไฟล์ของคุณในโฮมไดเร็กตอรี่ raspberry pi. เช่น mycode.py
  2. แก้ไขไฟล์:

    sudo nano .bashrc

.bashrcจะไม่ได้ตั้งใจที่จะเรียกใช้สคริปต์

มันถูกเรียกใช้ในแต่ละครั้งที่เริ่มต้นเชลล์แบบโต้ตอบที่ไม่ใช่การเข้าสู่ระบบและใช้เพื่อกำหนดค่าเชลล์
~/.bashrc: executed by bash(1) for non-login shells.

  1. ไปที่จุดสิ้นสุดของไฟล์และเขียน:

    sudo python mycode.py

  2. หากคุณต้องการเก็บผลลัพธ์ในไฟล์ txt ให้แก้ไขโค้ดในขั้นตอนที่ 3 ดังต่อไปนี้:

    sudo python mycode.py >> output.py

หวังว่านี่จะช่วยได้!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.