Самый простой способ управления репозиториями, который я нашел, — это разместить их в отдельных файлах в /etc/apt/sources.list.d/
. Таким образом, отключить репозиторий так же просто, как переместить файл из /etc/apt/sources.list.d/repo.list
в /etc/apt/sources.list.d/repo.list.bak
, а повторно -включить репо так же просто, как пойти другим путем. Вы даже можете создать скрипт, который временно отключает репозиторий, перемещая файл, запуская обновление/установку/что угодно, а затем снова перемещая файл обратно.
При переборе файлов с помощью glob путь будет добавлен к файлу. Итак, если ваш файл просто mongo
(, который должен быть основан на вашем коде, если это не так, это также проблема ), ваш цикл установит service
в /home/<YOUR USER>/start/mongo
. Затем вы пытаетесь увидеть, не равно ли это mongo
, что не так. Вы можете использовать basename
, чтобы исправить это :
for s in "$HOME/start/"*
do
service=$(basename "$s")
if [ -f "$HOME/test/$service/start.sh" ] && [ "$service" != mongo ]
then
cd "$HOME/start/$service"
./start.sh
else
pwd
echo "No start script found for $service"
fi
done
Может быть интересным случаем для «расширенного подстановки/расширенного сопоставления с образцом» -, если ваша оболочка(bash
? )предусматривает, что:
$ shopt -s extglob
$ for s in "$HOME/start/"!(mongo); do echo $s; done
Не делай этого!Используйте механизм для запуска служб в вашем дистрибутиве (предположительно systemd
сегодня, если Linux; другие системы Unixy имеют свои привлекательные особенности... ). Затем используйте механизмы дистрибутива для включения/отключения запуска служб.
В документации вашего дистрибутива должны быть подробные сведения. Если вы устанавливаете службу из пакетов дистрибутива, об этом следует позаботиться автоматически. И это очень рекомендуется :дистрибутив (действительно :сопровождающий пакета в нем )позаботится о том, чтобы установка была выполнена правильно, сконфигурирована безопасно и будет поддерживать следите за сообщениями об ошибках (и потенциальными угрозами безопасности, важно учитывать, если это какой-то сервер, открытый для всех видов злоумышленников со всего мира ).