Асинхронный скрипт init.d

Мне интересно, возможно ли запуск сценария запуска в Ubuntu. Что я имею в виду, это что-то вроде скрипта сервера Minecraft, который постоянно работает, так что, если сервер по какой-то причине сбой, я могу снова запустить команду и перезагрузить ее. Поэтому в основном у меня была бы команда запускать мой сервер minecraft в цикле while.

1
задан 25 March 2017 в 06:48

1 ответ

Есть несколько способов сделать это. Этот ответ я предпочитаю. Это быстрый и грязный ответ. Но из вашего вопроса, я понимаю, это все, что вы ищете.

1 Создайте скрипт, который делает то, что вы хотите в цикле. Например:

while [ 1 ]; do
    echo `date` >> /some/file/somewhere
    sleep 1
done

2 Создайте второй скрипт, чтобы проверить, работает ли первый скрипт. Если нет, запустите его:

VAR=`ps -ef |grep "name_of_script_1" |wc -l`
#VAR returns 1 if not running (because grep returns itself), 
#    2 if it is running.  
if [ "${VAR}" -eq "1" ]; then
    /run/script/1 &
fi

3 Запустите второй скрипт в cron на некотором интервале, как каждые 5 минут.

*/5 * * * * root /run/script/2

Итак, каждые 5 минут, script2 проверяет, работает ли сценарий 1. Если он не работает, он запускает его и бросает на задний план.

В Интернете есть много статей, чтобы помочь с конкретными элементами (запускать что-то в cron, в то время как синтаксис if, помещая программу в фон и т. д. Но это должно приблизить вас к тому, что вы ищете для.

1
ответ дан 23 May 2018 в 00:18

Другие вопросы по тегам:

Похожие вопросы: