1

マスター/スレーブ Redis プロセスを監視する 3 つの異なる Redis Sentinel プロセスを開始しようとするこの単純なスクリプトがあります。

# (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 つの別々のプロセスを開始するわけではありません。ターミナル ウィンドウで最初のコマンドを実行するだけで、次の 2 つのコマンドは実行されません。3 つのコマンドすべてを 1 つのスクリプトから別のウィンドウで実行するにはどうすればよいですか? (同じスクリプトから実行したい他のコマンドもいくつかありますが、例として単純にしたかったのです。)

Mac OSX で iTerm2 を使用しています。

4

1 に答える 1

1

bashジョブ制御を提供します。つまり、バックグラウンドで同時に複数のジョブを実行できます。&バックグラウンドでプロセスを開始するために使用します。

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

実行中のジョブのリストが表示されます。すべてのジョブが出力を同じ端末に書き込むことに注意してください。私はあなたが本当に欲しいものだと思います。

そのプロセスを別のウィンドウで本当に起動したい場合は、スクリプトから 3 つのターミナルを起動し、redis-sentinelコマンドを初期コマンドとして設定する必要があります。OSX についてはわかりませんがiTerm、そのような機能が提供されることはほぼ 100% 確信しています。gnome-terminal の場合、次のようになります。

 gnome-terminal -e 'redis-sentinel /usr/local/redis/sentinel-26379.conf' &

の適切なオプションを取得するには、man ページを確認してくださいiTerm

于 2015-07-06T19:35:03.827 に答える