特定コマンドを同時実行

解決済みの質問

特定コマンドを同時実行

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

このコマンドを何個同時に実行するよ、そういう方法ってないのでしょうか?

投稿日時 - 2001-05-30 16:25:53

QNo.83250

すぐに回答ほしいです

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

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

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

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

投稿日時 - 2001-05-30 17:57:31

ANo.4

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(3件中 1~3件目)

ANo.3

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

投稿日時 - 2001-05-30 17:46:19

ANo.2

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

投稿日時 - 2001-05-30 17:01:45

補足

バックグラウンド起動ということでなく、同時起動です。
たとえば、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

ANo.1

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

投稿日時 - 2001-05-30 16:42:36

補足

スクリプトの内部では、どのようにして実行させたいコマンドを呼び出せばいいのでしょうか?
forループとかで指定回数だけループさせて、ループのなかでコマンドを&付きで
バックグランド起動しても、連続で指定回数だけコマンドを実行するだけで、
すべてのコマンドが同時に実行していることにはならないと思うのですが?

投稿日時 - 2001-05-30 17:13:46

あわせてチェックしたい
  • Unixコマンド コマンドを再実行 ...
  • ハイパーターミナルのEnterがきかない ...
  • UNIXのコマンドについて ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら