มีวิธีใดบ้างในการสร้าง / เรียกใช้สคริปต์ทุบตีในการรีบูต (เช่นใน Debian / Ubuntu เป็นต้นเนื่องจากเป็นกล่อง 2 กล่องที่บ้านของฉัน)
นอกจากนี้มีคำแนะนำที่แนะนำสำหรับการทำงาน cron หรือไม่ ฉันใหม่สมบูรณ์สำหรับพวกเขา (แต่พวกเขาจะใช้ประโยชน์ได้ดี)
มีวิธีใดบ้างในการสร้าง / เรียกใช้สคริปต์ทุบตีในการรีบูต (เช่นใน Debian / Ubuntu เป็นต้นเนื่องจากเป็นกล่อง 2 กล่องที่บ้านของฉัน)
นอกจากนี้มีคำแนะนำที่แนะนำสำหรับการทำงาน cron หรือไม่ ฉันใหม่สมบูรณ์สำหรับพวกเขา (แต่พวกเขาจะใช้ประโยชน์ได้ดี)
คำตอบ:
บน Ubuntu / Debian / Centos คุณสามารถตั้งค่างาน cron เพื่อรัน @reboot สิ่งนี้จะทำงานหนึ่งครั้งเมื่อเริ่มต้นระบบ ใช้ crontab -e เพื่อแก้ไข crontab และเพิ่มบรรทัดเช่นตัวอย่างด้านล่างเช่น
@reboot /path/to/some/script
มีทรัพยากรมากมายสำหรับ cron ถ้าคุณมองหามัน เว็บไซต์นี้มีตัวอย่างที่ดีหลายประการ
อีกวิธีหนึ่งในการเริ่มต้นบางสิ่งขณะบู๊ตบนแพลตฟอร์ม* nixจำนวนมากคือ (หรือว่าฉันคิดว่านี่อาจจะเริ่มหลุดลอยไป - ดูทางเลือกอื่น ๆ ) เพื่อวางสคริปต์ในไดเรกทอรีซึ่งขึ้นอยู่กับระบบปฏิบัติการ / การกระจายเฉพาะ สิ่งที่ชอบ/etc/rc2.d
, /etc/rc3.d
, /etc/rc/rc3.d
หรือชอบ (การกระจายที่แตกต่างกันใช้ที่แตกต่างกัน "ระดับการทำงาน" ซึ่งเป็นจำนวนที่มาจาก - ดูลิงค์ด้านล่าง) บ่อยครั้งที่สิ่งเหล่านี้จะเชื่อมโยงไปยังหรือที่ไฟล์จาก/etc/init.d
เพื่อการดำเนินการที่ง่ายขึ้นด้วยมือและพวกเขาใช้อาร์กิวเมนต์ "เริ่มต้น" และ / หรือ "หยุด" ในแพลตฟอร์มส่วนใหญ่ * nix และ "สถานะ", "รีสตาร์ท" ฯลฯ บนแพลตฟอร์ม Linux มากมาย ในระบบดังกล่าวเหล่านี้จะดำเนินการโดยทั่วไปinit
,inittab
. บนระบบ * BSD มีสไตล์ที่แตกต่างกันของแนวคิดที่คล้ายกันและตามที่ลิงก์ด้านบนมีรูปแบบที่หลากหลาย
ในรูปแบบข้างต้นสคริปต์ในเช่น/etc/rc2.d
(สำหรับระบบที่มี runlevel เริ่มต้นที่ 2) โดยทั่วไปแล้วจะเริ่มต้นด้วยตัวอักษรS
หรือK
จากนั้นเป็นตัวเลขสองหลัก สคริปต์ที่ขึ้นต้นด้วย S จะถูกเรียกใช้ตามลำดับพจนานุกรม (ซึ่งแปลโดยทั่วไปเป็นลำดับตัวเลข) เมื่อทำการบูทขึ้นสู่ระดับ 2 โดยมีอาร์กิวเมนต์ว่า "เริ่มต้น" เมื่อปิดระบบสคริปต์ที่ขึ้นต้นด้วย K จะทำงานคล้ายกันโดยมีอาร์กิวเมนต์ "หยุด"
ไฟล์ใน/etc/init.d
(หรือบางครั้ง/etc/rc/init.d
หรือรูปแบบอื่น ๆ ) จะถูกตั้งชื่อโดยไม่มีคำนำหน้า S และ K หรือหมายเลขที่เป็นตัวเลข โดยปกติแล้วไฟล์ในไดเรกทอรี /etc/rc?.d ต่างๆ symlink ../init.d/
ไปไฟล์จริงมักจะอ้างอิงทางคำนำหน้าเส้นทางญาติ
ยูทิลิตี้ต่าง ๆ มีอยู่ในระบบต่าง ๆ เพื่อจัดการสิ่งเหล่านี้เช่นกันการเปิดและปิดสิ่งต่าง ๆ ฯลฯ บน IRIX (ตั้งแต่ IRIX 4 อย่างน้อยถ้าหน่วยความจำของฉันทำหน้าที่) มันเคยเป็นเครื่องมือที่เรียกว่าchkconfig
ซึ่งจะไม่จัดการ ลิงก์ที่จะตรวจสอบโดยสคริปต์เพื่อดูว่าควรรันหรือไม่ ฉันคิดว่า IRIX เป็นระบบปฏิบัติการแรกที่มีบางอย่างเช่นนี้ ต่อมาใน RedHat บางเวอร์ชั่นที่ฉันเคยมีมีเครื่องมือชื่อเดียวกัน แต่มันมีความแตกต่างเล็กน้อยจัดการกับ symlink จริง ๆ - ดูchkconfig(8)
สิ่งที่ฉันคิดว่าน่าจะเป็นรุ่นเดียวกัน (หรือคล้ายกันมาก) อย่างที่ฉันเคยใช้
ในระบบ Ubuntu 9.04 ที่ฉันเข้าใช้ดูเหมือนว่าupdate-rc.d
จะเป็นสคริปต์ที่จะเรียกใช้
หากคุณอยู่ในระบบที่ใช้ inittab คุณสามารถเพิ่มสิ่งต่าง ๆ ได้โดยตรงซึ่งจะเป็นประโยชน์อย่างยิ่งสำหรับสิ่งที่คุณต้องการเรียกใช้ไม่เพียงครั้งเดียวตอนบู๊ต แต่ยังมีการตรวจสอบอย่างแข็งขัน ( หากinit
) respawn
ผิดพลาดหรือยุติ ดูผลลัพธ์ของman inittab
(ถ้าคุณมี) ในระบบของคุณสำหรับข้อมูลเพิ่มเติม และ / หรือman init
ฯลฯ มีรสชาติที่แตกต่างกันมากมายและฉันไม่คุ้นเคยกับ Debian หรือ Ubuntu อย่างมากในขณะนี้ดังนั้นฉันไม่แน่ใจว่าจะชี้คุณไปที่ใด แต่หวังว่านี่จะเป็นจุดเริ่มต้นให้คุณ .
ส่วน @reboot ใน crontob ยังใหม่สำหรับฉัน แต่ก็ดูเหมือนว่ามันอาจเป็นตัวเลือกที่มีประโยชน์ - แม้ว่าฉันจะแนะนำสคริปต์เริ่มต้นว่าเป็นสิ่งที่ดีกว่าสำหรับหลาย ๆ สิ่ง แต่ดูman 5 crontab
ข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่คุณสามารถใส่ในการกำหนดค่า cron ของคุณและวิธีที่มันจะบอกให้ทำงานสิ่งต่างๆและเมื่อใด (รวมถึงสมมติว่า cron รุ่น Vixie / ISC [ดูประวัติของ cron ] ด้วย@reboot
)
ฉันหวังว่าจะเป็นประโยชน์