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


10

ฉันใช้ FreeBSD 9 และฉันต้องการสร้างสคริปต์ที่จะตรวจสอบว่าสายเคเบิลอีเธอร์เน็ตเชื่อมต่ออยู่หรือไม่และหากเป็นเช่นนั้นให้เชื่อมต่อกับมัน ฉันต้องการตั้งค่าเพื่อให้มันทำงานเมื่อใดก็ตามที่เครื่องเริ่มทำงานหรือเมื่อใดก็ตามที่ฉันเข้าสู่ระบบฉันดูที่หนังสือ UNIX ของฉัน (มันค่อนข้างล้าสมัยและสำหรับ UNIX ทั่วไปไม่ใช่ FreeBSD เฉพาะ) และมันบอกว่าฉันสามารถใช้ crontab แต่ฉันสามารถทำได้เพื่อให้สิ่งต่าง ๆ ทำงานในบางช่วงเวลาไม่ใช่เมื่อมันเริ่มทำงาน ใครช่วยกรุณาบอกฉันว่าฉันจะได้รับที่นี้

คำตอบ:


11

FreeBSD cronเข้าใจ@rebootคำสั่งเวลาดังนั้นคุณสามารถcronรันสคริปต์ของคุณได้เมื่อเริ่มต้น แทนที่จะcrontabป้อนเขตเวลา 5 ปกติรายการของคุณอาจมีลักษณะเช่นนี้:

@reboot /path/to/script

ถ้าคุณต้องการที่ยังดำเนินการตรวจสอบเมื่อคุณเข้าสู่ระบบเพิ่มการเรียกสคริปต์ในไฟล์รันเปลือกของคุณเมื่อเข้าสู่ระบบ - นี้อาจจะขึ้นอยู่กับเปลือกของคุณ~/.login, ~/.bash_loginฯลฯ


4

เมื่อวันที่ 11 FreeBSD สำหรับ ARMv6 (ราสเบอร์รี่ Pi) ผมไม่สามารถรับ crontab @rebootสั่งในการทำงานสำหรับผู้ใช้รากและ "เพิ่มสคริปต์ไปยัง/etc/rc.localไฟล์" /usr/local/etc/rc.d/วิธีการได้รับการแทนที่โดยกลไกที่จะทำงานโดยอัตโนมัติสคริปต์อยู่ใน

กล่าวอีกนัยหนึ่งคือการเรียกใช้สคริปต์ในการบู๊ตบน FreeBSD 11 (หรือ 10?) และที่ใหม่กว่านั้นให้วางเชลล์สคริปต์ที่สามารถเรียกใช้งานได้ด้วยส่วนขยาย. shในโฟลเดอร์นี้เพื่อเรียกใช้งานเมื่อบู๊ต:

/usr/local/etc/rc.d/

คุณอาจต้องสร้างrc.dโฟลเดอร์หากไม่มีอยู่

ดูhttp://www.defcon1.org/html/rc-local.htmlเพื่อดูรายละเอียด


3

ทางออกสำหรับสคริปต์เริ่มต้นก็/etc/rc.localคือ


1
แม้ว่าจะman rcบอกว่า "โดยปกติแล้วกลไก /usr/local/etc/rc.d/ จะถูกใช้แทน rc.local ทุกวันนี้ แต่ถ้าคุณต้องการใช้ rc.local มันก็ยังคงได้รับการสนับสนุนในกรณีนี้มันควรจะเป็นแหล่ง / etc / rc.conf และมีรหัสเริ่มต้นที่กำหนดเองเพิ่มเติมสำหรับระบบของคุณอย่างไรก็ตามวิธีที่ดีที่สุดในการจัดการ rc.local คือการแยกมันออกเป็นสคริปต์ rc.d / style และวางไว้ภายใต้ / usr / local / etc / rc .d /."
zezollo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.