91

nodejsアプリのセッションサポートにredisを使用しています。redisサーバーをインストールしましたが、redis-serverを実行すると動作しますが、ターミナルを閉じるとredisが停止して動作しません。ターミナルを閉じた後、redisサーバーを実行し続けるにはどうすればよいですか?

4

4 に答える 4

217

また、簡単なオプションが必要な場合は、次のコマンドを実行しますredis-server --daemonize yes

于 2015-12-23T13:20:19.673 に答える
75

デーモンとしてRedisを起動する最も簡単な方法は、構成ファイルを編集して次の行を変更することです。

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes

構成ファイルを起動するときは、必ずredis-serverコマンドラインで提供してください。

構成ファイルの例は、Redisディストリビューションで提供されています。

于 2013-02-11T21:51:26.600 に答える
36

@DidierSpeziaが彼の答えで述べたように、

daemonize yesRedisconfファイルに設定します。daemonize yesでRedisconfファイルに設定します。/path/to/redis.conf通常はにあり/etc/ます。

と :

次に、confファイルを引数としてredis-serverをトリガーします。

./redis-server /etc/redis.conf

更新demonizeフラグを使用 してredisを直接実行することもできます

redis-server --daemonize yes
于 2015-08-19T10:15:14.553 に答える
4

受け入れられた答えはほとんど時代遅れです。質問は古いですが、Googleはまだこれを高くランク付けしているので、これを修正させてください。

OPは彼のセットアップについて詳細を提供しませんでしたが、それはLinuxであると想定でき、コンテナーについても言及していないため、コンテナーなしでredisを実行していると想定することもできます。

受け入れられた答えを忘れるものにする3つの詳細があります

  • ほとんどの(人気のある)ディストリビューションには、デフォルトでsystemdが付属しています
  • ほとんどの(人気のある)ディストリビューションの公式リポジトリにredisがあります
  • その公式のredisパッケージはredisのsystemdサービスをインストールします

それで

  • supervised systemdデフォルトの設定になります
  • sudo systemctl start redis@instanceName開始するには: 「instanceName」を置き換えるredisデーモン。sudo systemctl enable redis@instanceName起動時の自動起動にも使用できます。service start(ところで、スクリプトを忘れて、すでに初期化してください!これらは、直接呼び出すよりも移植性が低くなっていますsystemctl)。
  • に設定しないでください。これにより、systemdの監視redisdaemonize: yesが妨害されます。

Systemdがredisを監視して再起動し、サービスの依存関係とサービスの前提条件を設定できます。カスタム実行可能ファイルの場合でも、systemdユニットファイルを検索します(最大10行の構成ファイルが必要です)。 。たぶん、あなたはそれが欲しいでしょう。

3つの詳細(systemdを正解にする)が満たされていない/関連性がない場合は、redisコンテナ化を実行している可能性があります。docker / podman / etc。の場合、それはまったく別の質問です...(内部Linuxにはsystemdはありませんが、コンテナーデーモン自体を監視する必要があります(またはすでに実行している必要があります))

于 2021-03-31T15:25:29.243 に答える