解決済みの質問
> バックグランド起動しても、連続で指定回数
> だけコマンドを実行するだけで、すべての
> コマンドが同時に実行していることには
> ならないと思うのですが?
まず、「&」付きでコマンドを起動すると、
コマンドの起動処理後、制御は元のシェルに戻る
ので、背後ではきちんと「複数起動(稼動)」して
います。
でもこれはあなたの言う「同時起動」とは異なるのでしょう。
確かに「複数起動(稼動)」と「同時起動(同時刻に
おける複数プロセスの同時起動)」は異なります。
プロセスの「全くの同時起動」は不可能です。
シェルスクリプトから起動するにせよ、プログラム内
からfork()で起動するにせよ、「起動する」と言う
アクション自体はCPU内部では時系列的に行われる
ため、絶対にコンマ何秒かの誤差は発生します。
投稿日時 - 2001-05-30 17:57:31
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(3件中 1~3件目)
あなたが言いたいことがよくわからないのですが。用はバックグラウンド
でプログラムが実行できればいいのかな?
なら
>コマンド &
と最期に&をつければすぐにコマンドラインの処理にもどれますから
もちろん
>コマンド & コマンド & コマンド & コマンド &
とやれば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
シェル・スクリプトなどでバッチファイルを作り、実行するのがいちばん簡単だと思います。
ピッタリ正確に同時刻に始めたい、ということであればatやcronなどを使って時刻起動してやれば実現できるかと思いますが。
投稿日時 - 2001-05-30 16:42:36
補足
スクリプトの内部では、どのようにして実行させたいコマンドを呼び出せばいいのでしょうか?
forループとかで指定回数だけループさせて、ループのなかでコマンドを&付きで
バックグランド起動しても、連続で指定回数だけコマンドを実行するだけで、
すべてのコマンドが同時に実行していることにはならないと思うのですが?
投稿日時 - 2001-05-30 17:13:46