Có phải mọi tập lệnh nằm trong /etc/network/if-up.d đều chạy khi giao diện được đưa lên không?


12

Có phải tất cả các tập lệnh trong /etc/network/if-up.d đều chạy khi giao diện mạng được đưa lên không?

Nếu vậy, lệnh post-up trong tệp giao diện là gì?


1
Tất cả các nội dung thư mục ".d", thông thường, được thực thi. Một số trong số họ thực sự cần phần mở rộng tên tệp ".sh". Tất cả các tập tin nên được thực thi.
kolypto

Câu trả lời:


14

Có nói chung bất kỳ tập lệnh nào được đánh dấu là có thể thực thi và được đặt trong thư mục đó được chạy. Các tập tin được giới hạn trong một tập hợp các tên cụ thể vì các phần chạy được sử dụng.

Việc post-uplàm tương tự như sử dụng up. Đặt một tập lệnh trong if-up.d cũng giống như chỉ sử dụng post-upmột tập lệnh trỏ đến tập lệnh hoặc lệnh ở một nơi khác. Thông thường bạn sẽ sử dụng up | post-up khi bạn chỉ cần chạy một lệnh cho một giao diện duy nhất. Khi bạn có một cái gì đó phức tạp hơn, bạn sẽ tạo ra một kịch bản.

giao diện người đàn ông

...
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.

người đàn ông

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
Vì vậy, nếu bạn muốn tập lệnh chỉ được chạy sau khi giao diện được bật và nó cần có nội dung trong thư mục if-up.d, bạn phải đặt tên cho tập lệnh để nó sẽ rơi theo thứ tự từ vựng sau lệnh bạn cần vận hành hoặc đặt vào một thư mục khác và chạy qua lệnh post-up. Nghe có đúng không?
Spig

1
Vâng, tôi tin là như vậy.
Zoredache

1
Như một câu trả lời chi tiết tốt đẹp. Thậm chí 10 năm sau, vẫn cung cấp cái nhìn sâu sắc.
Xofo

Bạn thực sự phải đọc kỹ trang man của phần chạy để nhận ra rằng ngay cả các tập lệnh có tên tệp đúng bằng cách sử dụng phần mở rộng .sh sẽ không chạy. Trích dẫn: "... nó sẽ giúp ích rất nhiều nếu có bất kỳ thông tin nào về việc bỏ qua tập lệnh vì dấu chấm. Tôi đã mất rất nhiều thời gian để khắc phục sự cố ... câu lệnh '... các tên phải bao gồm hoàn toàn chữ hoa và chữ thường chữ cái, chữ số, dấu gạch dưới và dấu gạch nối. ' Tôi không đọc được hai lần và nó không giúp tôi hiểu vấn đề của mình ở đâu. Nó nên được viết rõ ràng rằng các kịch bản có dấu chấm được bỏ qua. "
ChrisW

'Lỗi' này là "Không sửa" trong Debian: phần chạy không chạy tập lệnh với lỗi mở rộng sh.launchpad.net/ubfox/+source/debianutils/+orms/38022
ChrisW
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.