はじめに
pueueは長時間かかるようなコマンドをキューに追加して処理してくれるツールで、並列で実行させることもできます。Slurm や Toqrue などのジョブ管理システムを導入するまでもないような、ちょっとした作業のために使うと便利です。
GitHub - Nukesor/pueue: Manage your shell commands.
pueue のインストールはrustツールチェインのcargoを使って行います。
% cargo install --locked pueue
pueue の機能
- クロスプラットフォーム
- Linuxは完全にサポートされており、厳しいテストが実施されています。
- MacOSは完全にサポートされており、Linuxと同等に動作します。
- Windowsは完全にサポートされており、かなり長い間正常に動作しています。
- スケジューリング
- タスクを追加しながら実行
- 複数のタスクを一度に実行。同時に実行するタスクの数は自分で決めることができます。
- スケジュールされたタスクの順序を変更する。
- タスク間の依存関係を指定する。
- 特定の時刻に実行するようタスクをスケジュールする
- プロセスの相互作用
出力の点検が容易
実行中のプロセスへの入力送信
今すぐ処理能力が必要なときのタスクの一時停止/再開
- タスクグループ(複数キュー)
- 各グループには、複数のタスクを並行して実行させることができます。
- グループ単位でタスクの一時停止・開始が可能
- バックグランドプロセス実行
- pueuedデーモンはバックグラウンドで実行されます。ログインの必要はありません。
- コマンドはそれぞれの作業ディレクトリで実行されます。
- タスクを追加する際に、現在の環境変数がコピーされます。
- コマンドはシェルで実行されるため、シェルコーディングの全機能を使用できます。
- 一貫性
- キューは常にディスクに保存され、kill/システムクラッシュ時にリストアされます。
- ログはディスクに保存され、クラッシュの影響を受けません。
- その他
- デスクトップ通知を設定するためのコールバック・フック。
- 外部スクリプトのために、ログとステータスをJSONで出力します。
- waitサブコマンドにより、外部スクリプトがグループ(またはすべて)の終了を待つことができるようになりました。
設定ファイル
pueue は、デフォルトでは以下の設定ファイルを読み取ります。
- Linux:
$XDG_CONFIG_HOME/pueue/pueue.yml
もしくは ~/.config/pueue/pueue.yml
- MacOs:
~/Library/Application Support/pueue/pueue.yml
- Windows:
%APPDATA%\\pueue\\pueue.yml
pueuedを初めて起動するときに、デフォルトの設定ファイルが生成されます。また、デーモンとクライアントの両方で、-c
オプションで特定の設定ファイルを読み込ませることもできます。