Câu hỏi khởi động lại máy chủ ubuntu 14 một cách duyên dáng?


Vì vậy, tôi có một máy chủ ubuntu có hai phiên tmux đang chạy trong nền và một vài ứng dụng khác trên nền. Có cách nào để tạo ra một scrip mà sẽ gracefully thoát khỏi quá trình trên tmux (excample Cntrl C) và tắt tất cả các dịch vụ và khởi động lại?

Máy của tôi có xu hướng ngừng kết nối với internet sau một vài ngày và muốn hệ thống tự động khởi động lại một cách duyên dáng. Tôi có tất cả các dịch vụ khởi động lại và khởi động lại mux sau khi khởi động lại.

Tôi chỉ cần tìm hiểu làm thế nào tôi có thể nhận được máy tính này để khởi động lại độc đáo.

Vui lòng thông báo với bất kỳ thông tin nào bạn có thể trợ giúp. Hãy ghi nhớ tôi là một noob nhưng hiểu những điều cơ bản.

Cảm ơn bạn trước.


1
2018-03-03 17:11


gốc


Bạn có mất bất kỳ dữ liệu nào trong khi khởi động lại không? Khởi động lại trong Ubuntu đã được duyên dáng, đặc biệt là so với thủ tục khởi động lại Unix sớm. - dsstorefile1


Các câu trả lời:


Thực ra shutdown và tương đương  duyên dáng. Trước tiên, họ gửi một SIGTERM (15) cho các quy trình và chỉ khi họ không trả lời whithin một khoảng thời gian nhất định họ gửi SIGKILL (9) sau đó.

SIGTERM là tín hiệu được gửi khi bạn nhấn CTRL+C. Các ứng dụng có thể chặn tín hiệu đó và tự tắt máy một cách duyên dáng (ví dụ: tệp tuôn ra, giao dịch cam kết / rollback, v.v.). Tất cả các ứng dụng hợp lý đều hoạt động theo cách này.

Khi các quá trình không ngừng sau một thời gian, sau đó một SIGKILL được gửi đến chúng sau đó. SIGKILL là kinda sledgehammer. Các ứng dụng không thể chặn tín hiệu đó - nó khá giống như cắt điện.

Vì vậy, vâng, shutdown hoặc là reboot thường an toàn và duyên dáng.

Tài liệu tham khảo:


3
2018-03-03 17:39



Vì vậy, tôi không mất bất kỳ dữ liệu nhưng tôi không muốn máy chủ của tôi có bất kỳ tham nhũng dữ liệu. Kể từ khi nó chạy apache và mysql và xử lý dữ liệu trên cơ sở dữ liệu. Vì vậy, tôi nghe rằng tôi có thể sử dụng lệnh / sbin / shutdown -t 15 -r để nó tắt máy và giết các ứng dụng trong 15 giây và sau đó khởi động lại. Vì vậy, tôi tạo ra một kịch bản để chạy lệnh này tại một khoảng thời gian? Hay tôi đang đi? - adil
Đây sẽ là một câu hỏi khác. apache và mysql mình chắc chắn nhận thức được một sự kiện tắt máy và nói chung xử lý đúng cách. Nhưng nếu bạn có một giao dịch chạy dài (phút hoặc lâu hơn) trong cá thể MySQL của bạn thì nó sẽ phụ thuộc vào a) công cụ DB của bạn (ví dụ: MyISAM vs. InnoDB) và b) trên logic ứng dụng tổng thể của bạn cho dù dữ liệu có thích hợp sau khi phát hành shutdown. Nó không chắc rằng nó bị hỏng nhưng nó có thể không phù hợp khi bạn không sử dụng các giao dịch DB thích hợp. - PerlDuck
Khi tắt máy, khi bạn cho nó một tùy chọn trong một khoảng thời gian, nó sẽ không gửi sigterm và đợi khoảng thời gian đó, nó đợi khoảng thời gian đó trước khi gửi thuật ngữ Sig. Thời gian có nhiều khả năng là sự chậm trễ để những người dùng khác trên hộp có thể có thời gian để tiết kiệm công việc của họ. Nó thực sự hữu ích trong các hệ thống đa người dùng để biết rằng việc khởi động lại sắp diễn ra trong 10 phút. Vì thông tin đó được gửi đến tất cả TTY khi tắt máy. - Rowan Hawkins