Остановка во время bash

После беглого взгляда я бы сказал, что ваша сессия в приведенном выше примере не ЗНАЕТ, что ваш пользователь был добавлен в "колесо". Я закрывал сессию (выходил из системы), начинал новую сессию (вход в систему, открывал новый терминал и т.д.) и повторял попытку.

0
25.07.2017, 10:53
2 ответа

Вы можете использовать команду breakследующим образом:

while true; do
   ./Server
    if [ -e filename.txt ] ; then
        break
    fi
done

Но приведенный выше скрипт будет выполняться все время ./Server, что может быть опасно

0
28.01.2020, 02:15

Это было бы:

until [ -e filename.txt ]; do
 ./Server
done

То же, что и:

while [ ! -e filename.txt ]; do
 ./Server
done

В Linux вы также можете:

while true; do
  # wait for filename.txt to be removed if it's there:
  inotifywait -qe DELETE_SELF filename.txt 2> /dev/null
 ./Server
done

Предотвратить запуск Serverтолько при наличии файла, но запустить его снова, как только он будет удален.

Если вы являетесь администратором на машине, имеет смысл добавить ее в качестве службы, обрабатываемой вашей системой инициализации, которая позаботится о ее правильной демонизации, перезапуске (возрождении )при неожиданном выходе, если это необходимо. и т. д. Затем вы должны выполнить service whatever stopперед редактированием и startпосле.

6
28.01.2020, 02:15

Теги

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