web-dev-qa-db-ja.com

Redis Datastore Serverの起動に失敗しました(Ubuntu 16.04.1 LTS)

私はredisをインストールしましたが、コマンドでサービスを開始しようとするとまったく機能しません:

Sudo service redis-server start

これはjournalctl -xeの結果です:

Subject: Unit redis-server.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit redis-server.service has finished shutting down.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.

これはsystemctl status redis-server.serviceの結果です:

 redis-server.service - Redis Datastore Server
 Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
 Active: inactive (dead) (Result: resources) since Kam 2017-03-02 13:22:46 WIB; 5min ago
 Process: 12120 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)

Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.
Mar 02 13:22:46 aaaaa-notebook systemd[1]: redis-server.service: Unit entered failed state.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Failed with result 'resources'.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Service hold-off time over, scheduling restart.
Mar 02 13:22:46 aaa-notebook systemd[1]: Stopped Redis Datastore Server.
Mar 02 13:22:46 aaa-notebook systemd[1]: redis-server.service: Start request repeated too quickly.
Mar 02 13:22:46 aaa-notebook systemd[1]: Failed to start Redis Datastore Server.
7
Kakashi

私は同じ問題を抱えていて、どこでも実用的なソリューションを見つけることができませんでした。いくつかの検索の後、次の修正が機能しました(Ubuntu 16.04)

/ etc/systemd/system/redis.serviceで、[Service]セクションの下に以下を追加します。

Type=forking
12

任意のエディターを使用してサービスを開きます。

vim /etc/systemd/system/redis.service

ExecStart[Service]セクションを見てください。

ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf

このコマンドを実行して、発生しているエラーを確認します。私はこれで応答しました:

 Fatal error, can't open config file '/etc/redis/redis.conf'

だから私はちょうどその行をこれに更新しました(実際の設定ファイルがあった場所)

ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf

Redisクイックスタートがデフォルトで配置する場所は... :)

3
Kevin Upton

私は同じエラーに直面しました。しかし、私にとっては理由がまったく異なっていました。それはredis.confファイルのタイプミスによるものです。それを修正し、Sudo systemctl restart redis-serverを再起動するとすぐに再起動します。この場合にも同じエラーがスローされるのは誤解を招きます。

2
creativcoder

redis.serviceファイルが「/ etc/systemd/system /」ディレクトリにありません

Sudo nano /etc/systemd/system/redis.service

次に、これらの行をコピーして貼り付けます

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

このファイルを保存して閉じます

次に、ディレクトリの許可を変更します

$ Sudo adduser --system --group --no-create-home redis
$ Sudo chown redis:redis /var/lib/redis
$ Sudo chmod 770 /var/lib/redis

次にredisサーバーを起動します

$ sudo systemctl start redis

その実行中かどうかを確認します

$ sudo systemctl status redis

参考: https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04

1
Rishik Rohan

/ var/lib/redisフォルダーとredisユーザーおよびグループの両方が必要でした。

Kevin Uptonの https://askubuntu.com/a/981641/451682 アドバイスを使用して問題を見つけました:vim /etc/systemd/system/redis.serviceは、/usr/local/bin/redis-server /etc/redis/redis.confで作成し、Can't chdir to '/var/lib/redis': No such file or directoryで応答したSudo mkdir /var/lib/redisに導きました。

それから、Rishik Rohanの https://askubuntu.com/a/918408/451682 に従って、redisユーザーとグループを作成し、/ var/lib/redisディレクトリにそれを配置する必要もありました。 :

Sudo adduser --system --group --no-create-home redis
Sudo chown redis:redis /var/lib/redis
Sudo chmod 770 /var/lib/redis

どうもありがとう!

0
Alien Life Form

その問題を解決する手順:-+ ============== + A. 566番号行のredis.confでメモリ制限を設定する

566 maxmemory 256mb 567 maxmemory-policy allkeys-lru

B. Linuxカーネルのオーバーコミットメモリ設定を1に設定します。

$ Sudo sysctl vm.overcommit_memory = 1

または/etc/sysctl.confを1に変更します。

C.今すぐredisサーバーを再起動します。

$ systemctl restart redis

今すぐRedisのステータスを確認してください。

それでも問題が解決しない場合は、Goして編集し、サービスファイルを再編集します。

========= vi /etc/systemd/system/redis.service

次のように表示されます。

[ユニット] Description = Redis In-Memory Data Store After = network.target

[サービス] User = root Group = root ExecStart =/usr/local/bin/redis-server /etc/redis/redis.conf ExecStop =/usr/local/bin/redis-cli shutdown Restart = always

Type = Forking

[インストール] WantedBy = multi-user.target

変更してExecStart =/usr/local/bin/redis-server /etc/redis/redis.conf

ExecStart =/usr/local/bin/redis-server /etc/redis.conf

さて、redisサービスを開始してください

$ systemctl start redis

これで、Redisはエラーなしで起動します。

+ ============== +

Redisのテスト:-

[root @ server]#redis-cli 127.0.0.1:6379> ping echoコマンドを使用して、指定した文字列をエコーし​​ます。127.0.0.1:6379> echo "Tecmint is testing Redis" setコマンドを使用してキー値を設定することもできます。 127.0.0.1:6379> set mykey "is testing Redis" mykeyの値を表示します:127.0.0.1:6379> get mykey "is testing Redis" 127.0.0.1:6379> exit [root @ server]#

これで、redisが正常に起動して実行されました。

+ ================== +

ありがとうございます。それでは、お元気で

すべての設定を行った後、これらのコマンドを試してください

Sudo systemctl daemon-reload

Sudo chown redis:redis /var/lib/redis

Sudo chmod 770 /var/lib/redis

以降

Sudo systemctl start redis
0
Susaj S Nair

redis.logを確認してください。次のようなものが表示されるはずです。

41393:M 07 Jun 17:02:19.034 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
41393:M 07 Jun 17:02:19.034 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
41393:M 07 Jun 17:02:19.034 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
41393:M 07 Jun 17:02:19.034 # Can't open the append-only file: Read-only file system

したがって、システムの制限と、おそらくredis AOF(/var/lib/redis/*)のファイル許可を確認してください。システムの制限については、 良いガイド です。

0