UbuntuServer16.04LTSでRedisプロセスを複数立てる
6680 ワード
テストサーバ(UbuntuLTS16.04)上に複数のRedisを立てたかったのでメモ
※ここでは標準の6379ポートの設定をもとに、6380ポートで立てている
redis-6380用ディレクトリの作成
sudo install -o redis -g root -m 755 -d /var/lib/redis-6380
sudo install -o redis -g root -m 755 -d /var/log/redis-6380
sudo install -o redis -g root -m 755 -d /var/run/redis-6380
sudo chown -R redis:redis /var/lib/redis-6380
sudo chown -R redis:redis /var/log/redis-6380
sudo chown -R redis:redis /var/run/redis-6380
confファイル作成
sudo cp -rf /etc/redis /etc/redis-6380
sudo sed -i 's/^pidfile .*$/pidfile \/var\/run\/redis-6380\/redis.pid/' /etc/redis-6380/redis.conf
sudo sed -i 's/^port .*$/port 6380/' /etc/redis-6380/redis.conf
sudo sed -i 's/^logfile .*$/logfile \/var\/log\/redis-6380\/redis.log/' /etc/redis-6380/redis.conf
sudo chown -R redis:redis /etc/redis-6380/redis.conf
起動ファイル作成
sudo cp -p /etc/init.d/redis-server /etc/init.d/redis-server-6380
sudo sed -i 's/^DAEMON=.*$/DAEMON=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^DAEMON_ARGS=.*$/DAEMON_ARGS=\/etc\/redis-6380\/redis.conf/' /etc/init.d/redis-server-6380
sudo sed -i 's/^NAME=.*$/NAME=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^DESC=.*$/DESC=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^RUNDIR=.*$/RUNDIR=\/var\/run\/redis-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^PIDFILE=.*$/PIDFILE=\$RUNDIR\/redis-server-6380.pid/' /etc/init.d/redis-server-6380
sudo ln -s /usr/bin/redis-server /usr/bin/redis-server-6380
サービスファイル作成
sudo cp -p /lib/systemd/system/redis-server.service /lib/systemd/system/redis-server-6380.service
sudo vi /lib/systemd/system/redis-server-6380.service
sudo install -o redis -g root -m 755 -d /var/lib/redis-6380
sudo install -o redis -g root -m 755 -d /var/log/redis-6380
sudo install -o redis -g root -m 755 -d /var/run/redis-6380
sudo chown -R redis:redis /var/lib/redis-6380
sudo chown -R redis:redis /var/log/redis-6380
sudo chown -R redis:redis /var/run/redis-6380
sudo cp -rf /etc/redis /etc/redis-6380
sudo sed -i 's/^pidfile .*$/pidfile \/var\/run\/redis-6380\/redis.pid/' /etc/redis-6380/redis.conf
sudo sed -i 's/^port .*$/port 6380/' /etc/redis-6380/redis.conf
sudo sed -i 's/^logfile .*$/logfile \/var\/log\/redis-6380\/redis.log/' /etc/redis-6380/redis.conf
sudo chown -R redis:redis /etc/redis-6380/redis.conf
起動ファイル作成
sudo cp -p /etc/init.d/redis-server /etc/init.d/redis-server-6380
sudo sed -i 's/^DAEMON=.*$/DAEMON=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^DAEMON_ARGS=.*$/DAEMON_ARGS=\/etc\/redis-6380\/redis.conf/' /etc/init.d/redis-server-6380
sudo sed -i 's/^NAME=.*$/NAME=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^DESC=.*$/DESC=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^RUNDIR=.*$/RUNDIR=\/var\/run\/redis-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^PIDFILE=.*$/PIDFILE=\$RUNDIR\/redis-server-6380.pid/' /etc/init.d/redis-server-6380
sudo ln -s /usr/bin/redis-server /usr/bin/redis-server-6380
サービスファイル作成
sudo cp -p /lib/systemd/system/redis-server.service /lib/systemd/system/redis-server-6380.service
sudo vi /lib/systemd/system/redis-server-6380.service
sudo cp -p /etc/init.d/redis-server /etc/init.d/redis-server-6380
sudo sed -i 's/^DAEMON=.*$/DAEMON=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^DAEMON_ARGS=.*$/DAEMON_ARGS=\/etc\/redis-6380\/redis.conf/' /etc/init.d/redis-server-6380
sudo sed -i 's/^NAME=.*$/NAME=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^DESC=.*$/DESC=redis-server-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^RUNDIR=.*$/RUNDIR=\/var\/run\/redis-6380/' /etc/init.d/redis-server-6380
sudo sed -i 's/^PIDFILE=.*$/PIDFILE=\$RUNDIR\/redis-server-6380.pid/' /etc/init.d/redis-server-6380
sudo ln -s /usr/bin/redis-server /usr/bin/redis-server-6380
sudo cp -p /lib/systemd/system/redis-server.service /lib/systemd/system/redis-server-6380.service
sudo vi /lib/systemd/system/redis-server-6380.service
↓以下を反映 ※sedでやりたかったけど力尽きた
[Service]
Type=forking
ExecStart=/usr/bin/redis-server-6380 /etc/redis-6380/redis.conf
PIDFile=/var/run/redis-6380/redis-server-6380.pid
TimeoutStopSec=0
Restart=always
User=redis
Group=redis
ExecStartPre=-/bin/run-parts --verbose /etc/redis-6380/redis-server-6380.pre-up.d
ExecStartPost=-/bin/run-parts --verbose /etc/redis-6380/redis-server-6380.post-up.d
ExecStop=-/bin/run-parts --verbose /etc/redis-6380/redis-server-6380.pre-down.d
ExecStop=/bin/kill -s TERM $MAINPID
ExecStopPost=-/bin/run-parts --verbose /etc/redis-6380/redis-server-6380.post-down.d
PrivateTmp=yes
PrivateDevices=yes
ProtectHome=yes
ReadOnlyDirectories=/
ReadWriteDirectories=-/var/lib/redis-6380
ReadWriteDirectories=-/var/log/redis-6380
ReadWriteDirectories=-/var/run/redis-6380
CapabilityBoundingSet=~CAP_SYS_PTRACE
# redis-server writes its own config file when in cluster mode so we allow
# writing there (NB. ProtectSystem=true over ProtectSystem=full)
ProtectSystem=true
ReadWriteDirectories=-/etc/redis-6380
[Install]
WantedBy=multi-user.target
Alias=redis-6380.service
pidファイルのディレクトリ自動作成設定
$ sudo vim /etc/tmpfiles.d/redis-6380.conf
$ sudo vim /etc/tmpfiles.d/redis-6380.conf
以下を反映
d /var/run/redis-6380 0775 redis redis
※Linuxカーネルのあるバージョンから/var/runがtmpfs上に置かれる設定になったので必要
https://blog.cles.jp/item/9051
サービス起動
sudo service redis-server-6380 start
プロセス確認
ps aux | grep 6380
アクセス確認
redis-cli -p 6380
参考サイト
sudo service redis-server-6380 start
ps aux | grep 6380
アクセス確認
redis-cli -p 6380
参考サイト
redis-cli -p 6380
Author And Source
この問題について(UbuntuServer16.04LTSでRedisプロセスを複数立てる), 我々は、より多くの情報をここで見つけました https://qiita.com/TrinityT/items/933c26c82eee20b7006c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .