Привет я искал, как перезапустить файл, если он отказывает/закрывает автоматически, но у меня нет опыта в сценариях и Linux в целом. Я только что запустил игровой сервер, и иногда он закрывается, потому что он имеет некоторые ошибки в игре, и люди сообщают о них мне, поэтому в то время как я фиксирую те ошибки, я хотел бы знать, как перезапустить его, не будучи физически в моем компьютере.
Если я не ошибаюсь, что это может быть сделано с .bat файлом. Или это только работает в окнах?
Если вы хотите, чтобы команда YOUR_COMMAND
всегда перезапускалась при выходе, просто поместите ее в цикл, например
while true; do YOUR_COMMAND ; sleep 5 ; done
. Обратите внимание, что я добавил 5-секундную задержку между концом команды и ее запустить снова. Вы можете прервать цикл, нажав Ctrl kbd> + C kbd> в терминале, где он выполняется.
Если вы хотите, чтобы цикл перезапускал вашу КОМАНДУ только в том случае, если он завершился с кодом выхода, отличным от 0 (который должен указывать на ошибку / неуспешный запуск), как предложено @KonradRudolph, вы можете сделать это следующим образом :
while ! YOUR_COMMAND ; do sleep 5 ; done
Обратите внимание, что YOUR_COMMAND
должен выйти со статусом 0, чтобы завершить цикл, или со статусом! = 0, чтобы перезапуститься при использовании этой структуры.