Makefile任务因错误而停止,我可以继续运行吗?

时间:2012-03-01 08:37:36

标签: bash makefile

在我的makefile中有一个同步配置文件的任务

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 个答案:

答案 0 :(得分:2)

问题是useradd命令正在返回错误代码。

您可以按照here的说明在命令前加一个短划线(实际上,我发现这是一个重复的问题):

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

或者,使该命令始终返回成功代码的变通方法是将其与true组合,如下所示:

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