После беглого взгляда я бы сказал, что ваша сессия в приведенном выше примере не ЗНАЕТ, что ваш пользователь был добавлен в "колесо". Я закрывал сессию (выходил из системы), начинал новую сессию (вход в систему, открывал новый терминал и т.д.) и повторял попытку.
Вы можете использовать команду break
следующим образом:
while true; do
./Server
if [ -e filename.txt ] ; then
break
fi
done
Но приведенный выше скрипт будет выполняться все время ./Server
, что может быть опасно
Это было бы:
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
после.