-PR-
解決済み

特定コマンドを同時実行

  • すぐに回答を!
  • 質問No.83250
  • 閲覧数14109
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 7% (5/71)

UNIXで、同じコマンドを複数同時に実行する方法がわかりません。
実行させたいコマンドは条件によってほんの数秒で終わったり
長い時間がかかるため、ターミナルを複数上げて端から順番に
enterしていくという方法では当然間に合いません。

このコマンドを何個同時に実行するよ、そういう方法ってないのでしょうか?
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル12

ベストアンサー率 41% (324/772)

> バックグランド起動しても、連続で指定回数
> だけコマンドを実行するだけで、すべての
> コマンドが同時に実行していることには
> ならないと思うのですが?
まず、「&」付きでコマンドを起動すると、
コマンドの起動処理後、制御は元のシェルに戻る
ので、背後ではきちんと「複数起動(稼動)」して
います。
でもこれはあなたの言う「同時起動」とは異なるのでしょう。

確かに「複数起動(稼動)」と「同時起動(同時刻に
おける複数プロセスの同時起動)」は異なります。

プロセスの「全くの同時起動」は不可能です。
シェルスクリプトから起動するにせよ、プログラム内
からfork()で起動するにせよ、「起動する」と言う
アクション自体はCPU内部では時系列的に行われる
ため、絶対にコンマ何秒かの誤差は発生します。
関連するQ&A
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.3
レベル8

ベストアンサー率 40% (16/40)

こんにちわ。 同時にプロセスを起動したいとのことですが、時分割システムである限り、厳密な意味での同時実行は無理だと思います。もし、ほぼ時間差が無いように実行させるのでしたら、実行させたいプログラム内でシグナルハンドラと、タイマー関係のシグナルを利用して、ある時刻に実行再開するようにすれば、多少はタイムラグが解消できるとは思いますが、これでも誤差が出ると思います。
こんにちわ。
同時にプロセスを起動したいとのことですが、時分割システムである限り、厳密な意味での同時実行は無理だと思います。もし、ほぼ時間差が無いように実行させるのでしたら、実行させたいプログラム内でシグナルハンドラと、タイマー関係のシグナルを利用して、ある時刻に実行再開するようにすれば、多少はタイムラグが解消できるとは思いますが、これでも誤差が出ると思います。


  • 回答No.1
レベル10

ベストアンサー率 40% (86/214)

シェル・スクリプトなどでバッチファイルを作り、実行するのがいちばん簡単だと思います。  ピッタリ正確に同時刻に始めたい、ということであればatやcronなどを使って時刻起動してやれば実現できるかと思いますが。 ...続きを読む
シェル・スクリプトなどでバッチファイルを作り、実行するのがいちばん簡単だと思います。
 ピッタリ正確に同時刻に始めたい、ということであればatやcronなどを使って時刻起動してやれば実現できるかと思いますが。
補足コメント
hiro22

お礼率 7% (5/71)

スクリプトの内部では、どのようにして実行させたいコマンドを呼び出せばいいのでしょうか?
forループとかで指定回数だけループさせて、ループのなかでコマンドを&付きで
バックグランド起動しても、連続で指定回数だけコマンドを実行するだけで、
すべてのコマンドが同時に実行していることにはならないと思うのですが?
投稿日時 - 2001-05-30 17:13:46
  • 回答No.2
レベル10

ベストアンサー率 18% (35/185)

あなたが言いたいことがよくわからないのですが。用はバックグラウンド でプログラムが実行できればいいのかな? なら >コマンド & と最期に&をつければすぐにコマンドラインの処理にもどれますから もちろん >コマンド & コマンド & コマンド & コマンド & とやれば4つのプログラムが同時に動きます。 ただ、処理結果の表示は同時 ...続きを読む
あなたが言いたいことがよくわからないのですが。用はバックグラウンド
でプログラムが実行できればいいのかな?
なら
>コマンド &
と最期に&をつければすぐにコマンドラインの処理にもどれますから
もちろん
>コマンド & コマンド & コマンド & コマンド &
とやれば4つのプログラムが同時に動きます。
ただ、処理結果の表示は同時にはできないのでリダイレクトするなりして
ファイルにほぞんしたほうがいいです。
補足コメント
hiro22

お礼率 7% (5/71)

バックグラウンド起動ということでなく、同時起動です。
たとえば、hoge.shというスクリプトを10個同時に起動して、
psコマンドで調べたらhoge.shというのが10プロセス存在することが確認できる
というようなことを望んでいます。

ご指摘の方法ですと、
#> hoge.sh & hoge.sh & hoge.sh & hoge.sh & hoge.sh &
というようなコマンドを実行すると思いますが、
これですと順次コマンドを実行しているだけであって、
最後のhoge.shが実行されるまえに1番目が終わっていることもありますよね?

そうでなくで、よーいドンで5個起動できるような方法を探しています。
マルチスレッドなプログラムやcronを利用しろといえばそれまでですが。
投稿日時 - 2001-05-30 17:19:29
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ