問題タブ [runit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reboot - runit は、再起動後にプロセスを 2 回生成します
再起動後、runit は既に起動したプログラムを再生成します。サービス ログにエラー メッセージはありません。サービスとして登録されたプログラムは正常に動作し始めますが、約 10 ~ 15 秒後に runit によって再起動されます。
linux - DEBIAN_FRONTEND=noninteractive install -y gcc の後で runit をインストールできません
gcc と runnit を自動的にインストールしたいと考えています。しかし、「sudo apt-get install gcc」を実行すると、構成を選択するダイアログが表示されます。だから私は使う
そして、同じ方法で runit をインストールします
しかし、残念ながらエラーが発生します:それは示しています
そして、私のシステムはクリーンな Ubuntu10.04 です。gcc noninteractive をインストールしなくても runit をインストールできます。
誰かが私を助けてくれることを願っています。
ありがとう!
sidekiq - Sidekiq が runit で停止しない
多くのサービスを rinit で実行していますが、これは素晴らしいものです。
最近、すばらしい Sidekiq を使い始めました。runit で実行しています。問題は、「sv stop」を実行するときです。プロセスを停止していません。restart を呼び出すと、実際には sidekiq の別のインスタンスが起動され、古いインスタンスは実行されたままになります。
サンプルの実行ファイルは次のとおりです。
supervise/pid の pid ファイルは、実行中の pid と一致します。
ありがとう、ジェレミー
logging - runit: debian で監視エラーをロックできません
runit をセットアップして、debian wheezy VM にログオンしようとしています。これまでのところ、次のセットアップに従って、gunicorn サービスを開始することができました。
ログ実行ファイルには次のものがあります。
Sudo runsvdir /etc/service/gunicornを実行すると
私が何を間違っているのか分かりません、何か指針はありますか?
r - R ファイルを実行せずにソース化する (単体テスト)
私たちはRコードベースを構築しており、私たちが書いた関数をユニットテストしたいと考えています. これまでのところ、R 用の 2 つのテスト ライブラリ、RUnit と testthat が見つかりました。
少しサンドボックス化を行った後、実行するたびにコードをテストするための確実な方法を開発しました。例えば:
十分に単純です。ただし、関数が定義されているスクリプトを実行せずに関数をテストする機能も必要です (たとえば、makefile の unittest フラグを使用)。これを行うには、test.R に unittests を記述します。
sample.R の残りを実行せずに実行します。しかし、上記のコードを実行すると、関数だけでなく、sample.R の残りのコードも実行され、この例では「Running fun()...」と出力されます。ファイルからユーザー定義関数のみを source() する方法はありますか?
そうでない場合は、関数を別のファイル (functions.R など) に入れることをお勧めしますか? そこの欠点は、ボイラープレートが必要であるように思われます。プロセス用のファイル、関数用のファイル、およびテストを実行するためのファイルです。
bundler - 古いリリースの実行可能ファイル (rbenv + runit) を使用するユニコーン
簡単に修正できるはずの問題が発生していますが、魔法が見つからないようです。
Unicorn は runit を使用して、現在のリリースの Gemfile を指定しようとしています。各展開の最後に、ユニコーンに USR2 信号が送信され、「ゼロ ダウンタイム展開」メソッドを使用して古いマスターが正常に置き換えられます。これは、古いリリースが一掃されるポイントに到達するまで、しばらくは問題ありませんでした。その後、runit が、ユニコーン マスターが最初に作成されたときに使用されたリリース ディレクトリを指していることに気付きました。
このブロックを unicorn.rb に追加しようとしました:
また、このスクリプトでバンドラーをラップしようとしました:
BUNDLE_GEMFILE 環境変数を手動で設定しようとしましたが、どれも機能していないようです。
展開後にユニコーンの標準出力を見ると、次のように表示されます。
ご覧のとおり、コマンドは新しいリリース ディレクトリ (d6a582935d84cc0bec2e760c14d804a7c5e2146c) で実行されていますが、unicron 実行可能ファイルは古いリリース (1279f2e2d88c90ba4e02eaba611a4ee6de6fee77) を指しています。
ユニコーンを手動で停止/開始すると、正しいリリースが使用されますが、それは「ゼロ ダウンタイム デプロイ」がないことを意味します。
問題が何であるかはわかりませんが、rbenv パスに関係していると思います。正しい (現在の) リリースを指すユニコーンを取得する方法について、誰か提案がありますか?
詳しい人がいれば、私は Chef で application_ruby LWRP を使用してデプロイしています。基本的に Capistrano をエミュレートするだけです。
関連する構成:
unicorn.rb:
runit ユニコーン スクリプト: