Công việc định kỳ khởi động màn hình khi bắt đầu


0

Tôi đang cố gắng thiết lập một số quy trình bắt đầu trong khi khởi động (máy chủ cho các trò chơi) với lệnh dưới đây là mục cron:

@reboot /usr/bin/screen -fa -d -m -S NAME COMMAND

Tuy nhiên, nếu máy chủ gặp sự cố vì lý do màn hình đóng và máy chủ không có cơ hội chạy tự động khởi động lại (theo như tôi hiểu; màn hình không thấy quá trình nào trong ổ cắm và vì vậy sẽ đóng).

Có cách nào để tôi có thể khắc phục điều này để màn hình sẽ ngồi ở đó ngay cả khi không có gì đang chạy trong đó không? Giống như mở một cái vỏ?


Tự động khởi động lại được thực hiện như thế nào? Một phần của mã máy chủ, hoặc một tập lệnh bên ngoài?
grawity

Tôi nghĩ đó là một phần của máy chủ, srcds_run mở máy chủ và đó là thứ mà cron đang bắt đầu
Pez Cuckow

Câu trả lời:


0

Lệnh được đưa ra là con của màn hình, vì vậy khi thoát ra, cửa sổ sẽ chết.

Bạn có thể khắc phục điều này bằng cách khởi động trình bao và sau đó đẩy đầu vào vào cửa sổ để chạy lệnh, nhưng điều này chỉ thay đổi vấn đề để bạn sẽ bị bỏ lại với dấu nhắc trình bao và máy chủ sẽ không tự động khởi động lại.

Thực sự, bạn muốn chạy một lệnh duy trì, sau đó chạy máy chủ mà bạn quan tâm. Có rất nhiều công cụ, nhưng đơn giản nhất là tự mình viết một cái gì đó (trừ khi bạn muốn có toàn bộ sức mạnh của sự chuyên dụng công cụ.

#!/bin/sh
while [ ! -f /home/servicename/shutdown-flagfile ]; do
  echo "Starting server [$(date)]"
  server-binary-name "$@"
  sleep 1
done

Dòng 2 cho phép bạn thoát ra khỏi vòng lặp bằng cách tạo một tệp đặc biệt (với "chạm"), tên nhị phân máy chủ là chương trình để thực sự chạy, "$ @" là để vượt qua các tùy chọn mà trình bao bọc được gọi với và ngủ 1 là để nếu máy chủ chết khi khởi động, bạn không nên nhai tất cả CPU liên tục khởi động lại hàng ngàn lần mỗi giây, để khó có thể vào trong và xem điều gì đang xảy ra. Dòng echo chỉ cho phép bạn xem khi nào máy chủ phải được khởi động lại.

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.