สคริปต์ทุกตัวอยู่ใน /etc/network/if-up.d รันหรือไม่เมื่อมีการแสดงส่วนต่อประสานขึ้นมา?


12

สคริปต์ทั้งหมดใน /etc/network/if-up.d ทำงานเมื่อมีการเชื่อมต่อเครือข่ายหรือไม่?

ถ้าเป็นเช่นนั้นคำสั่ง post-up สำหรับไฟล์อินเตอร์เฟสคืออะไร?


1
เนื้อหาโฟลเดอร์ ".d " ทั้งหมดจะถูกเรียกใช้งานตามปกติ บางคนต้องการนามสกุลไฟล์ ".sh" ไฟล์ทั้งหมดควรจะสามารถเรียกใช้งานได้
kolypto

คำตอบ:


14

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

จะเป็นสิ่งเดียวกันกับการใช้post-up upการวางสคริปต์ใน if-up.d นั้นเหมือนกับการใช้post-upสคริปต์นั้นชี้ไปที่สคริปต์หรือคำสั่งที่อื่น โดยปกติแล้วคุณจะใช้การขึ้น | ลงรายการบัญชีเมื่อคุณต้องการเรียกใช้คำสั่งเดียวสำหรับอินเทอร์เฟซเดียว เมื่อคุณมีสิ่งที่ซับซ้อนกว่านี้คุณจะต้องสร้างสคริปต์

อินเตอร์เฟสคน

...
up command

post-up command
      Run  command  after  bringing the interface up.  If this command
      fails then ifup aborts, refraining from marking the interface as
      configured  (even  though it has really been configured), prints
      an error message, and exits with status 0.   This  behavior  may
      change in the future.
...
There  exists  for  each  of  the  above  mentioned options a directory
/etc/network/if-<option>.d/ the scripts in which are run (with no argu-
ments) using run-parts(8) after the option itself has been processed.

คนวิ่งชิ้นส่วน

run-parts  runs  all  the  executable  files  named  within constraints
described below,

If  the  --lsbsysinit  option  is not given then the names must consist
entirely of upper and lower  case  letters,  digits,  underscores,  and
hyphens.
...
Files are run in the lexical sort  order  of  their  names  unless  the
--reverse  option  is given, in which case they are run in the opposite
order.

1
ดังนั้นหากคุณต้องการให้สคริปต์ทำงานหลังจากอินเทอร์เฟซสิ้นสุดและจำเป็นต้องมีสิ่งต่าง ๆ ในโฟลเดอร์ if-up.d ให้พร้อมคุณต้องตั้งชื่อเพื่อให้มันอยู่ในลำดับคำศัพท์หลังจากคำสั่งที่คุณต้องการใช้งาน หรือใส่ในไดเรกทอรีอื่นและเรียกใช้ผ่านคำสั่ง post-up เสียงนั้นใช่ไหม
Spig

1
ใช่ฉันเชื่อเช่นนั้น
Zoredache

1
ช่างเป็นคำตอบที่ดีมาก แม้แต่ 10 ปีต่อมายังคงให้ข้อมูลเชิงลึก
Xofo

คุณต้องอ่านหน้า man-run-parts อย่างละเอียดเพื่อให้รู้ว่าแม้แต่สคริปต์ที่มีชื่อไฟล์ที่ถูกต้องเป็นอย่างอื่นโดยใช้ส่วนขยาย. sh จะไม่ทำงาน อ้างอิง: "... มันจะช่วยได้มากหากมีข้อมูลเกี่ยวกับการข้ามสคริปต์เนื่องจากจุดใด ๆ ฉันเสียเวลามากมายในการแก้ไขปัญหา ... คำสั่ง '... ชื่อต้องประกอบด้วยตัวพิมพ์ใหญ่และตัวพิมพ์เล็กทั้งหมด ตัวอักษรตัวเลขขีดล่างและเครื่องหมายขีดกลาง ' ไม่เพียงพอฉันอ่านสองครั้งและไม่ช่วยให้ฉันเข้าใจว่าปัญหาของฉันอยู่ที่ไหนควรเขียนอย่างชัดเจนว่าสคริปต์ที่มีจุดถูกข้ามไป "
ChrisW

'ข้อผิดพลาด' นี้คือ "จะไม่แก้ไข" ใน Debian: run-parts ไม่ได้เรียกใช้สคริปต์ด้วยส่วนขยาย sh.launchpad.net/ubuntu/+source/debianutils/+bug/38022
ChrisW
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.