[解決済み] 同じターミナルで複数のコマンドを同時に並列実行する
2023-04-29 21:35:29
質問
いくつかのコマンドを実行したいのですが、それぞれのコマンドは Ctrl-C が押されるまで終了しません。一度にすべてのコマンドを実行し、Ctrl-C ですべてを終了させるために実行できるものはあるでしょうか。それらはターミナル出力を共有することができます。
具体的には、私は compass コンパイラー、coffeescript コンパイラー、およびファイルの変更を監視するカスタム コマンドをすべて実行して、ファイルの変更を監視しています。各コマンドのためにターミナルをロードしたくありません。
どのように解決するのですか?
このbashスクリプトはN個の並列スレッドに対応するものである。各引数はコマンドです。
trap
は、SIGINT がキャッチされると、全てのサブプロセスを kill します。
wait $PID_LIST
は各プロセスの完了を待っている。
すべてのプロセスが完了すると、プログラムは終了します。
#!/bin/bash
for cmd in "$@"; do {
echo "Process \"$cmd\" started";
$cmd & pid=$!
PID_LIST+=" $pid";
} done
trap "kill $PID_LIST" SIGINT
echo "Parallel processes have started";
wait $PID_LIST
echo
echo "All processes have completed";
このスクリプトを
parallel_commands
として保存し、実行可能な状態にします。
これがこのスクリプトの使い方です。
parallel_commands "cmd arg0 arg1 arg2" "other_cmd arg0 arg2 arg3"
例
parallel_commands "sleep 1" "sleep 2" "sleep 3" "sleep 4"
4並列スリープを開始し、"sleep 4"が終了するまで待ちます。
関連
-
Manjaro linuxでマウスの速度を設定する方法は?Manjaroのマウスのカーソル速度を設定する方法に関するヒント
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
deepin20のソフトをアンインストールする方法を教えてください。deepinのアプリケーションをアンインストールする2つの方法
-
[解決済み] libstdc++.so.5: 共有オブジェクトファイルを開くことができない - しかしライブラリはインストールされており最新である
-
[解決済み] ターミナルで現在の行をクリア/削除するにはどうすればよいですか?
-
[解決済み] UnixのコンソールやMacのターミナルでシェルスクリプトを実行するには?
-
[解決済み] シェルで複数のコマンドを1行で実行する
-
[解決済み] Bashでsshして複数のコマンドを実行する最もクリーンな方法は何ですか?
-
[解決済み】利用可能なすべてのコマンドとエイリアスをリストアップするLinuxコマンド
-
[解決済み】限られた数のコマンドを並列に処理するBashスクリプト
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
deepin20のサブネットマスクはどこですか?deepinのサブネットマスクを表示するためのヒント
-
virtualboxが仮想マシンを開けない場合は?linuxがvirtualboxにアクセスできない時の解決策
-
deepin20の不正確な時刻表示を調整する方法は?Deepinの時刻補正方法
-
Kali Linuxのデスクトップの外観スタイルを変更するには? KALIの外観の最適化のヒント
-
LinuxでJenkinsプラグインのインストールが遅い場合の解決策
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
リクエスト・エンティティが大きすぎる問題の解決策
-
[解決済み] Linuxでファイルをシンボリックリンクするには?[クローズド]
-
[解決済み] find .コマンドでディレクトリを除外する方法
-
[解決済み] ls を使用してディレクトリとその合計サイズを一覧表示する