Задание Makefile останавливается при ошибке, могу ли я продолжить его выполнение? - PullRequest
2 голосов
/ 01 марта 2012

В моем make-файле есть задача синхронизации файлов конфигурации

redis:
    mkdir -p /var/lib/redis
    mkdir -p /var/log/redis
    useradd --system --home-dir /var/lib/redis redis
    chown redis.redis /var/lib/redis
    chown redis.redis /var/log/redis
    cp ./scripts/redis-server.d.conf /etc/init/redis-server.conf
    cp ./scripts/redis.conf /etc/redis.conf
    restart redis

но когда я бегу во второй раз:

useradd --system --home-dir /var/lib/redis redis
useradd: user 'redis' already exists

как видите, он остановился на useradd, могу ли я продолжить его запуск?

1 Ответ

2 голосов
/ 01 марта 2012

Проблема в том, что команда useradd возвращает код ошибки.

Вы можете добавить тире к команде, как объяснено здесь (на самом деле, я обнаружил, что это дублированный вопрос):

-useradd --system --home-dir /var/lib/redis redis

В качестве альтернативы, для обхода этой команды, всегда возвращающей код успеха, нужно объединить его с true следующим образом:

useradd --system --home-dir /var/lib/redis redis || true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...