启动 Redis 哨兵的简单 BASH 脚本
Simple BASH script to start Redis sentinel
我有这个简单的脚本来尝试启动 3 个不同的 Redis Sentinel 进程来监视 master/slave Redis 进程:
# (attempts to run 3 sentinel processes from one script)
redis-sentinel /usr/local/redis/sentinel-26379.conf
redis-sentinel /usr/local/redis/sentinel-26380.conf
redis-sentinel /usr/local/redis/sentinel-26381.conf
# end
但当然,这实际上不会启动 3 个单独的进程 - 它只会 运行 终端中的第一个命令 window 而后两个命令不会 运行.我可以从一个脚本 运行 将所有 3 个命令分开 windows 的最佳方法是什么? (我还想从同一个脚本中 运行 执行一些其他命令,但为了举例,我想保持简单。)
我在 Mac OSX.
上使用 iTerm2
bash
提供 job control,这意味着您可以在后台同时 运行 多个作业。使用 &
在后台启动进程:
redis-sentinel /usr/local/redis/sentinel-26379.conf &
redis-sentinel /usr/local/redis/sentinel-26380.conf &
redis-sentinel /usr/local/redis/sentinel-26381.conf &
如果你输入
jobs
您将获得一份 运行ning 职位列表。请注意,所有作业都会将其输出写入同一终端。我想这才是你真正想要的。
如果您真的想在不同的 windows 中启动该进程,您需要从您的脚本启动三个终端并将 redis-sentinel
命令设置为它们的初始命令。我不知道 OSX 上的 iTerm
,但我几乎 100% 确定它提供了这样的功能。对于 gnome 终端,它看起来像这样:
gnome-terminal -e 'redis-sentinel /usr/local/redis/sentinel-26379.conf' &
查看手册页以获得 iTerm
的正确选项。
我有这个简单的脚本来尝试启动 3 个不同的 Redis Sentinel 进程来监视 master/slave Redis 进程:
# (attempts to run 3 sentinel processes from one script)
redis-sentinel /usr/local/redis/sentinel-26379.conf
redis-sentinel /usr/local/redis/sentinel-26380.conf
redis-sentinel /usr/local/redis/sentinel-26381.conf
# end
但当然,这实际上不会启动 3 个单独的进程 - 它只会 运行 终端中的第一个命令 window 而后两个命令不会 运行.我可以从一个脚本 运行 将所有 3 个命令分开 windows 的最佳方法是什么? (我还想从同一个脚本中 运行 执行一些其他命令,但为了举例,我想保持简单。)
我在 Mac OSX.
上使用 iTerm2bash
提供 job control,这意味着您可以在后台同时 运行 多个作业。使用 &
在后台启动进程:
redis-sentinel /usr/local/redis/sentinel-26379.conf &
redis-sentinel /usr/local/redis/sentinel-26380.conf &
redis-sentinel /usr/local/redis/sentinel-26381.conf &
如果你输入
jobs
您将获得一份 运行ning 职位列表。请注意,所有作业都会将其输出写入同一终端。我想这才是你真正想要的。
如果您真的想在不同的 windows 中启动该进程,您需要从您的脚本启动三个终端并将 redis-sentinel
命令设置为它们的初始命令。我不知道 OSX 上的 iTerm
,但我几乎 100% 确定它提供了这样的功能。对于 gnome 终端,它看起来像这样:
gnome-terminal -e 'redis-sentinel /usr/local/redis/sentinel-26379.conf' &
查看手册页以获得 iTerm
的正确选项。