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.