Điểm:0

Khởi động lại không kích hoạt phần "dừng" của tập lệnh init.d

lá cờ cn

Tôi có một tập lệnh mà tôi muốn thực thi trước khi máy bị tắt hoặc khởi động lại:

/etc/init.d/init.sh

#!/bin/sh
### BẮT ĐẦU THÔNG TIN BAN ĐẦU
# Cung cấp: init.sh
# Bắt buộc-Bắt đầu: $all
# Bắt buộc-Dừng:
# Mặc định-Bắt đầu: 2 3 4 5
# Dừng mặc định: 0 1 6
# Mô tả ngắn: xxx
# Mô tả: xxx
### KẾT THÚC THÔNG TIN BAN ĐẦU

nếu [ "$1" = "bắt đầu" ]; sau đó
  tiếng vang "thông điệp tường trình"
  su - azureuser -c '/bin/bash /my/script/dir/script1.sh'

  tiếng vang "thông điệp tường trình"
  su - azureuser -c '/bin/bash /my/script/dir/script2.sh -p "parameter2"'
fi

nếu [ "$1" = "dừng lại" ]; sau đó
  tiếng vang "thông điệp tường trình"
  su - azureuser -c '<một số lệnh shell>'

  cd /my/script/dir/sub
  ./script3.sh tham số3
  su - azureuser -c 'cd /my/script/dir/sub; ./script4.sh tham số4 --option1 --option2 --option3 somevalue'
fi

thoát 0

(Tôi đã xáo trộn các đường dẫn và tên tệp nhưng vẫn giữ lại cấu trúc tổng thể cho chuỗi này, rõ ràng là không có tên nào giống như ở đây)

Tập lệnh chạy tốt trong khi khởi động, nhưng phàn nàn rằng việc dọn dẹp lẽ ra phải xảy ra trong dừng lại khối không được thực hiện và tôi không thể thấy bất kỳ thông báo tường trình nào bắt nguồn từ dừng lại chặn trong nhật ký hệ thống. Chạy tập lệnh từ dòng lệnh (Sudo /etc/init.d/init.sh dừng lại) hoạt động như một cơ duyên với cả hai bắt đầudừng lại các tham số, vì vậy tôi bối rối không biết tại sao nó không hoạt động khi tôi dừng máy, khá chắc chắn rằng các tập lệnh runlevel chạy với quyền root.

liên kết tượng trưng tồn tại trên hệ thống của tôi:

/etc/rc0.d/K01init.sh
/etc/rc1.d/K01init.sh
/etc/rc2.d/S99init.sh
/etc/rc3.d/S99init.sh
/etc/rc4.d/S99init.sh
/etc/rc5.d/S99init.sh
/etc/rc6.d/K01init.sh

tất cả đều trỏ đến cùng một kịch bản v.v./init.d/init.sh. Dựa trên một chủ đề khác, tôi cũng đã thử mà không có .sh hậu tố, không thay đổi bất cứ điều gì.

Quyền cho kịch bản1kịch bản2 là cả hai 750 va cho kịch bản3kịch bản4 thậm chí 755.

Tôi đang đi sai ở đâu đây? Tôi đang chạy Ubuntu 18.04 và runlevel hiện tại của tôi là 5 (nhưng điều đó không liên quan, vì ở đây nó phải là khoảng 0 & 6). Bản thân tập lệnh (bao gồm cả tập lệnh phụ) không được thảo luận ở đây, nó hoạt động tốt trong môi trường khác và chạy thủ công dẫn đến trạng thái mong muốn trong môi trường này, vì vậy thiết lập (hoặc hiểu biết) của tôi về tập lệnh init phải sai ở đâu đó.

Nếu có liên quan: Tôi đang nói về việc khởi động lại cả hai thông qua khởi động lại sudo thông qua GUI Azure (đó là một máy ảo), không chắc cơ chế khởi động lại Azures có khác không. Cả hai cách đều không hiệu quả.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.