Chuyển tới nội dung chính

Khởi động lại tập lệnh (os.restart)

Khai báo

ok, err = os.restart([ scriptPath ])

Tham số

  • scriptPath
    Chuỗi, tùy chọn. Nếu cung cấp đường dẫn tệp tập lệnh hợp lệ, môi trường chạy sẽ khởi động lại vào tập lệnh đích đó. Mặc định: "" (tập lệnh hiện tại).

Giá trị trả về

  • ok
    Boolean. Chỉ trả về false khi đã cung cấp đường dẫn đích nhưng thao tác thất bại. Khi thành công, hàm không trả về vì tiến trình sẽ khởi động lại.
  • err
    Chuỗi. Thông báo lỗi khi thao tác thất bại.

Mô tả

Khi không có tham số, hàm khởi động lại ngay tiến trình tập lệnh hiện tại; tập lệnh hiện tại sẽ kết thúc ngay lập tức.
Khi có đường dẫn tập lệnh hợp lệ, tập lệnh hiện tại sẽ kết thúc và tập lệnh đích sẽ bắt đầu.
Khi thất bại (thường do đối số không hợp lệ), hàm trả về false kèm thông báo lỗi.

Lưu ý

"Tập lệnh hiện tại" là phiên bản tập lệnh đã được khởi chạy, không phải tệp hiện có trên ổ đĩa. Nếu tệp thay đổi sau khi khởi chạy, os.restart() sẽ không chạy tệp đã sửa.
Nếu có thể, hãy tránh dùng hàm này trong ngữ cảnh đa luồng.
Khởi động lại không có độ trễ có thể gây ra các vấn đề logic khác; hãy xử lý phù hợp.

Ví dụ 1

os.restart() -- khởi động lại "tập lệnh hiện tại" (không phải "tệp tập lệnh hiện tại")

Ví dụ 2

os.restart(utils.launch_args().path) -- khởi động lại vào tệp tập lệnh hiện tại

Lưu ý: Sử dụng utils.launch_args