2012-03-01 14 views
2

が設定ファイル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 

を同期するタスクがあるが、私は2回目の実行時:

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

あなたが見ることができるように、それはuseraddの上で停止し、私はそれを実行し続けることができますか?

+0

可能重複[GNUのmakeを持って、エラー後も継続するには?](http://stackoverflow.com/questions/2188376/how-to-have-gnu-make-continue -after-error) – jcollado

答えて

1

問題は、useraddコマンドがエラーコードを返すことです。 hereが説明したようにあなたが(実際、私はこれが重複質問です見つかっ)コマンドにダッシュを付加することができます

:また

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

、そのコマンドは常に成功コードを返すようにする回避策が結合することですtrueと、それは次のように:

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

これはやや面倒です'useradd'のエラーはユーザーが既に存在するためです。より良い修正は、ユーザーが既に存在するかどうかを確認し、存在しない場合のみ作成することです。 – tripleee

関連する問題