1
Chefを使用してサービスが実行されていることを確認するにはどうすればよいですか?
Chefがサービス(postgres)を開始する可能性がありますが、その後、帯域外で停止される可能性があります。後続のChef実行でサービスを実行させたい。私はこれを試しました: service "postgresql" do action :start end しかし(up to date)、シェフが起動したことをシェフが認識しており、停止したことを認識できないためと考えて、効果はありません。(おそらくservice ... statusこのサービスでどのように動作するためですか?)これを書いた場合: # anti-pattern warning! execute "force-start-postgresql" do command "service postgresql start || /etc/init.d/postgresql start" action :run end 私は望ましい振る舞いをします。また、action :restartそれを実行させます。ただし、これらは移植性のため(そして後者の場合は再開する前に停止する可能性があるため)、アンチパターンのように見えます。 では、Chefがすでに実行されていると考えている場合でも、サービスを強制的に開始するように指示するにはどうすればよいですか? これは、OpsCodeによってホストされているChef 11.6とデフォルトのpostgresqlレシピを使用しています。(これは似ていますが、Chefで「最新の」リソースにアクションを強制する方法とはまったく同じではないと思いますか?) --- 編集(jtimberlandポストに続く説明)--- -l debugここに示しています: DEBUG: service[postgresql] supports status, running DEBUG: service[postgresql] is running それが実行されていないときでも。だからそれは一つのバグのように聞こえます、そして私はそれに興味があります。ただし、私は主にChefに「ステータスチェックをスキップして、常にサービス開始コマンドを呼び出す」ように指示する方法があるかどうかに興味があります。それがここでの質問です。 (私は専門家だが、私はサービスが実行されていることを確認するための最もポータブルな方法は、サービスとそのほとんど常に冪等ですを開始することだと思います。大藤チェックサービスが実行されているかどうかはあまり一致しており、私たちは気にしなければならない理由は、私が表示されません!)