Trong bash, những hậu quả tiêu cực tiềm ẩn của việc tạm dừng một quá trình với control-z là gì?


11

Sử dụng bash, người ta có thể tạm dừng một quá trình với control-z. Tuy nhiên, có bất kỳ trường hợp hoặc hướng dẫn chung nào để cảnh giác khi một quá trình không hoạt động tốt khi bị tạm dừng không?

Kịch bản cụ thể của tôi là trong việc tạo một tệp tar mất nhiều thời gian hơn dự kiến. Tôi muốn tạm dừng nó để đặt nó trong nền, nhưng quyết định không. Câu hỏi của tôi không, tất nhiên, cụ thể cho tar. Thay vào đó, tôi hy vọng hiểu được tính năng tạm dừng trong bash tốt hơn một chút cũng như điều gì sẽ khiến quá trình phản ứng kém khi bị tạm dừng.

Câu trả lời:


3

Nhiệm vụ lưu trữ (pvmove, veritas vx-anything) dựa trên các bản sao nguyên tử. Sẽ không tốt nếu họ bị mắc kẹt ngoài tầm kiểm soát của họ. Nó phụ thuộc vào việc tác vụ chỉ tắt một số API và phần còn lại từ không gian kernel, sau đó có an toàn không. Nếu nó đang xảy ra trong đó quá trình * * trong shell của bạn, sau đó thực sự đi với màn hình và giữ tay tắt.

Chắc chắn đề nghị bạn để tránh dừng chúng vào nền. Các lệnh sử dụng bộ đệm như dd có vẻ tốt hơn, ngoại trừ các ổ đĩa băng được đề cập ở trên.

(Tôi đã từng giành được một lần khởi động lại bổ sung, ngủ ít hơn và nhiều hoang tưởng khi điều đó xảy ra với tôi trong khi dọn dẹp mớ hỗn độn của người khác.


6

Nếu quy trình của bạn ghi dữ liệu, chỉ cần lưu ý rằng các vấn đề về thời gian với các thiết bị và bộ đệm truy cập không ngẫu nhiên có thể có vấn đề. Đôi khi tôi đã thấy các ổ đĩa băng có vấn đề với điều này.


phiên mạng / tường lửa có thể hết thời gian và không được khởi động lại vì TCP-SYN không được gửi lại.
jippie

Ngăn xếp TCP sẽ tiếp tục gửi ACK rằng cửa sổ đã đầy, phải không?
Magellan

Giữ các gói sống không phải là một phần của giao thức TCP cũng như IP, tốt nhất nó là một phần của ứng dụng. Vì vậy, tường lửa hoặc máy khách hoặc máy chủ từ xa có thể hết thời gian chờ đợi gói và thả ổ cắm / kết nối.
jippie

Không nói với thủ tục, đó rõ ràng là cấp Ứng dụng. Tôi đang nói về ACK cho cửa sổ trượt TCP ở cấp Vận chuyển.
Magellan

2

Và kịch bản trần tục: làm Ctrl-Z, sau đó quên nó và đăng xuất, và mất quá trình! =)


0

Không thực sự là một câu trả lời cụ thể cho câu hỏi, nhưng thay vào đó, bạn có thể cố gắng chạy các công việc đồng thời bằng cách sử dụng screen. Do đó, bạn có thể sử dụng shell đồng thời với một chương trình khác.


Vâng, màn hình luôn là một cách tốt để đi. Tôi không chắc chắn làm thế nào để trả lời tên của bạn, tuy nhiên.
Wesley

@toiletfreak Làm thế nào là màn hình thay thế cho tạm dừng? Màn hình chạy một công việc trong nền phải không? Nhưng nó vẫn tiếp tục nếu bạn tách màn hình ...
Bernhard
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.