Làm thế nào tôi có thể mở một tập tin nếu nó gặp sự cố trong khi tôi đi?


1

Xin chào, tôi đã tìm cách khởi động lại một tập tin nếu nó bị treo / đóng tự động, nhưng tôi không có kinh nghiệm về kịch bản và linux nói chung. Tôi mới khởi động một máy chủ trò chơi và đôi khi nó đóng cửa vì nó có một số lỗi trong trò chơi và mọi người báo cáo chúng cho tôi, vì vậy trong khi tôi sửa các lỗi đó, tôi rất muốn biết cách khởi động lại mà không gặp sự cố trong máy tính của tôi .

Nếu tôi không sai, điều này có thể được thực hiện với tệp .bat. Hay nó chỉ hoạt động trong windows?

Câu trả lời:


1

Nếu bạn muốn một lệnh YOUR_COMMANDluôn được khởi động lại khi nó thoát, chỉ cần đặt nó trong một vòng lặp, như

while true; do YOUR_COMMAND ; sleep 5 ; done

Lưu ý rằng tôi đã thêm độ trễ 5 giây giữa kết thúc lệnh và khởi động lại. Bạn có thể hủy bỏ vòng lặp bằng cách nhấn Ctrl+ Ctrong thiết bị đầu cuối nơi nó chạy.


Nếu bạn muốn vòng lặp chỉ khởi động lại LỆNH của mình nếu nó kết thúc bằng mã thoát khác 0 (sẽ chỉ ra lỗi / chạy không thành công), như @KonradRudolph đã đề xuất, bạn có thể làm như sau:

while ! YOUR_COMMAND ; do sleep 5 ; done

Lưu ý rằng YOUR_COMMANDphải thoát với trạng thái 0 để kết thúc vòng lặp hoặc với trạng thái! = 0 để được khởi động lại khi bạn sử dụng cấu trúc này.


Một cải tiến rất đơn giản sẽ là truy vấn trạng thái thoát của chương trình và thoát khỏi vòng lặp nếu nó bị đóng mà không có lỗi. Tất nhiên điều này đòi hỏi chương trình phải được xử lý tốt liên quan đến mã thoát.
Konrad Rudolph

@KonradRudolph Cảm ơn, đó là một gợi ý hay. Tôi đã thêm nó vào câu trả lời của tôi.
Chỉ huy Byte
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.