在我的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上停止了,我可以继续运行吗?
答案 0 :(得分:2)
问题是useradd
命令正在返回错误代码。
您可以按照here的说明在命令前加一个短划线(实际上,我发现这是一个重复的问题):
-useradd --system --home-dir /var/lib/redis redis
或者,使该命令始终返回成功代码的变通方法是将其与true
组合,如下所示:
useradd --system --home-dir /var/lib/redis redis || true