ฉันจะทำให้สคริปต์ทำงานเมื่อเริ่มต้นเครื่อง Ubuntu ได้อย่างไร


9

ฉันต้องการเรียกใช้ /home/myuser/go.py

ฉันจะทำให้มันทำงานใน พื้นหลัง ทุกครั้งที่เครื่อง linux ของฉันบู๊ต


สิ่งที่เกิดขึ้นทั่วไปบน Ubuntu เริ่มต้นที่นี่: superuser.com/questions/151330/ubuntu-control-the-init-startup ... นี่อาจเป็น "ใกล้พอ" เพื่อพิจารณาสำเนา
quack quixote

คำตอบ:


7

วิธีง่ายๆ

คุณสามารถเพิ่มสคริปต์นี้ลงใน /etc/rc.local ไฟล์ (ก่อน exit บรรทัด) เช่น

/home/myuser/go.py &

ที่ไหน & ในตอนท้ายจะเรียกใช้สคริปต์ในพื้นหลัง

ตรวจสอบให้แน่ใจว่าคุณได้ดำเนินการตั้งค่าสถานะ หากต้องการทดสอบให้เรียกใช้จากเทอร์มินัลอย่างง่าย:

sh /etc/rc.local

2

คุณสามารถใส่สคริปต์ใน /etc/init.d/ ไดเรกทอรี (เช่น: /etc/init.d/go.py ) สำหรับทุกสิ่งที่คุณต้องการเรียกใช้ในเวลาบูตเครื่อง

http://www.debian-administration.org/article/Making_scripts_run_at_boot_time_with_Debian


7
ฉันชอบ /etc/rc.local เนื่องจากคุณไม่จำเป็นต้องเปลี่ยนลิงค์ระดับการรัน
Dirk Eddelbuettel

@DirkEddel - ฉันเห็นด้วยกับมัน!
BloodPhilia

บางทีคุณควรเพิ่มคำตอบนี้แยกต่างหากเพื่อให้สามารถโหวตได้
Steve Homer

2

มีหลายวิธีในการทำเช่นนี้ (ขึ้นอยู่กับการกระจายของ linux ที่คุณใช้อยู่มีเครื่องมือต่าง ๆ ที่เสนอ)

วิธีที่ง่ายที่สุดคือการเพิ่มสคริปต์ไปยัง /etc/init.d จากนั้นเรียกใช้คำสั่ง

chmod +x go.py
update-rc.d go.py defaults

หากคุณตั้งค่าบริการไว้แล้วคุณสามารถทำได้ผ่านคำสั่ง chkconfig (นั่นคือหากคำสั่งนั้นพร้อมใช้งาน)

ในกรณีนั้นคำสั่งนี้ควรจะทำงาน:

chkconfig --level 35 go.py on

เช็คเอาท์ เว็บไซต์นี้ เพิ่มเติมโดยเฉพาะส่วน "การใช้ chkconfig เพื่อเริ่ม Daemons ที่ runlevel แต่ละครั้ง" และ "การใช้ sysv-rc-conf เพื่อเริ่ม Daemons ที่แต่ละ Runlevel"


0

cron มีความพิเศษ @reboot ตัวเลือกที่ช่วยให้นี้ ดีและเรียบง่าย

ภารกิจ cron ปกติอาจเป็น:

* * * * * /path/to/app

@reboot งาน cron อาจเป็น:

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