問題タブ [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.
bash - 開始/停止を伴う runit 呼び出しスクリプト
私はいくつかの SysVinit スクリプトを持っていstart/stop
ます。これらはリモート サーバーの展開に使用されます。現在、他の展開目的で runit を使用しており、スクリプトを複製したくない (メンテナンス上の理由)。runit
これらのスクリプトを呼び出すことは可能ですか? または他のアプローチ?前もって感謝します。
bash - runit は service コマンドの代わりに script を呼び出します
runit
サービスを直接呼び出す代わりにスクリプトを呼び出すことは可能です。たとえば、起動する init スクリプトがありますuwsgi
。このスクリプトを runit init スクリプト内で呼び出すことはできますか? 前もって感謝します。
docker - runit を介して Gitlab Docker コンテナ内で Subgit 同期を自動的に開始できない
私のローカル Gitlab CE Docker コンテナには Subgit が含まれています。Gitlab コンテナーが再起動されると、Subgit 同期も自動的に開始されます。
私のソリューションは、Dockerhubの gitlab/gitlab-ce の元の Dockerfile から派生しています。元の Dockerfile では、SSH デーモンが追加され、rinit の制御下に設定されています。
Subgitでも同じことをしました。/opt/gitlab/sv/subgitの下に私の runit リソースがあり、subgit は/opt/gitlab/serviceディレクトリへのソフト リンクを設定することで有効になります。しかし、Gitlab Container を起動するとソフト リンクが削除されるため、runsvdir は Subgit runit ファイルを無視します。ソフト リンクを手動で有効にすると、runsvdir によって Subgit 同期が正常に開始されます。
ソフトリンクを保持し、Subgit の自動起動をそれぞれ有効にするにはどうすればよいですか?
Subgit と runit に関する Dockerfile の一部を次に示します。
これが runit の実行ファイルです。実際の Gitlab グループとプロジェクト名は置き換えられます。
linux - ctrl+c でプロセスを強制終了しない
CTRL+C
ローカル マシンで完全に応答するプロセスがあります。また、それは機能しているようにも見えます。
しかし、EC2 インスタンスではフリーズし、機能していないプロセスまたはゾンビ プロセスになります。
kill -9 <PID>
は削除せず、EC2 インスタンスを再起動して適切にクリーンアップする必要があります。
実行すると、社内で開発された共有ライブラリも読み込まれます。これには私は何の影響も与えておらず、その中のソースコードにアクセスして、それが何をしているのかを確認することもできません。このライブラリも CUDA を使用しており、複数のスレッドを開始しているように見えます。
メインスレッドにシグナルハンドラーをインストールしようとしましたが、インストールされますが、呼び出し_exit
てもプロセス全体がシャットダウンされず、まだ待機しているようです。
CTRL+C
ここで、プロセスを正常に終了できない原因がここで発生している可能性があるのはなぜですか? 他のスレッドが行っている可能性があることをオーバーライドまたは調べることはできますか?