質問: capture("cat #{unicorn_pid}").to_i run "kill -s QUIT #{pid}" if pid > 0 end ``` 私が知る限り、これは`:app` の役割で与えられたサーバー上で与えられたコマンドを実行するはずですか?しかし、問題は、サーバー上のコマンドを`:db` の役割で実行しているということです。 誰もがこの問題についていくつかの洞察を与えることができますか?または、Capistranoに`:roles` フラグを強制的に適用させる方法がありますか? 前もって感謝します // Emil
回答: キャプチャを使用すると、一覧表示された最初のサーバーでのみタスクが実行されます。 ドキュメントから: キャプチャヘルパーは、最初に一致するサーバで指定されたコマンドを実行し、コマンドの出力を文字列として返します。 https://github.com/capistrano/capistrano/wiki /2.x-DSL-Action-Inspection-Capture 残念ながら、私は同様の問題に直面しています。find_serversの解決策はうまくいくかもしれませんが、ハッキーです。