プロセスの一括停止、軌道について
Kompiraバージョン:1.5.4
案件のメール監視を24時間行うジョブフローを複数(約30個)組んでおり、
常時プロセスを動かしている状態なのですが、プロセスの停止及び起動方法について確認させてください。
①複数のプロセスを一括で停止させる方法
⇒Kompiraの画面上で可能でしょうか。プロセス一覧で「選択したプロセス削除」がありますが、各プロセスが選択出来ませんでした。
②複数のプロセスを一括で起動させる方法
⇒①にて一括で停止させた後に何らかの理由で再度起動させたい場合、
一括でプロセスを起動させることは可能でしょうか。
以上、宜しくお願いいたします。
-
正式なコメント
フィックスポイントの高橋です。
①複数のプロセスを一括で停止させる方法
⇒Kompiraの画面上で可能でしょうか。プロセス一覧で「選択したプロセス削除」がありますが、各プロセスが選択出来ませんでした。画面上で複数のプロセスを一括で停止する機能はございません。プロセス一覧画面で選択したプロセス(実行完了したもの)を削除することはできますが、こちらは実行中のプロセスを停止する機能ではありません。
v1.5.5 で追加された管理コマンド (/opt/kompira/bin/manage.py process [options...]) で、指定したプロセスを停止することはできますが、こちらは v1.5.4 ではご利用いただけません。
②複数のプロセスを一括で起動させる方法
⇒①にて一括で停止させた後に何らかの理由で再度起動させたい場合、
一括でプロセスを起動させることは可能でしょうか。ジョブフローで fork ブロックを利用することで子プロセスを生成することができ、detach() 組み込みジョブで子プロセスを親プロセスから切り離すことができます。これを組み合わせると、例えば以下のようにジョブフローから別のプロセスでジョブフローを起動させるようなことができます。
{ fork |
detach() -> [./別プロセスで実行したいジョブフローA]
detach() -> [./別プロセスで実行したいジョブフローB]
detach() -> [./別プロセスで実行したいジョブフローC]
} ->
print("OK") # ... 親プロセスは別の処理を継続できます他にも pfor ブロックを利用するとブロック内部を複数の子プロセスで実行することができますので、例えば以下のように同じジョブフローを30個するような書き方もできます。
{ pfor n in 30 |
detach() -> [./別プロセスで実行したいジョブフロー: n]
} ->
print("OK") # ... 親プロセスは別の処理を継続できます参考になさってみてください。
コメントアクション -
フィックスポイントの高橋です。
プロセスの停止についてですが、実行中のものを停止させる方法はございますでしょうか。
※一括停止機能は無しとの事ですので、単体の停止方法でも構いませんプロセス一覧画面からいずれかのプロセスをクリックして詳細画面を開いていただくと、実行中の場合には「中止」「停止」ボタンが押下できるようになっていると思います。「中止」ボタンを押下するとプロセスは強制終了できます(再開できません)。「停止」ボタンを押下するとプロセスを一時的に停止することができ、この場合は「続行」ボタンを押下することで動作を再開させることができます。
ちなみにですが、「Kompiraデーモン」と「Kompiraジョブマネージャ」を停止(systemctl stop コマンド)するとプロセスは停止されますでしょうか。
Kompira デーモンがジョブフローを実際に動作させている実体となり、これを停止させるとプロセスは強制終了しますのでご注意ください(再開しません)。
ちなみに、Kompiraジョブマネージャはジョブフロー中でコマンド実行するジョブ、たとえば ["whoami"] といったジョブで実際に対象サーバにログインしてコマンドを実行する役割を担っています。こちらを停止させても、ジョブフロープロセスの停止・再開などには関係しません(ジョブの成功・失敗には影響します)。
なお、/system/startup ディレクトリにジョブフローを配置しておくと、Kompira デーモンを開始したときにここにあるジョブフローを自動的に起動する、という機能はございます。
以上、参考になさってみてください。
サインインしてコメントを残してください。
コメント
3件のコメント